Merge remote-tracking branch 'upstream/master' into nasm

This commit is contained in:
106062316
2020-08-19 19:24:57 +08:00
43 changed files with 1473 additions and 147 deletions

48
.github/workflows/generate-srcinfo.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: generate-srcinfo
on:
push:
branches:
- master
workflow_dispatch:
jobs:
update-srcinfo:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: msys2/setup-msys2@v2
with:
msystem: MSYS
install: python git mingw-w64-x86_64-toolchain mingw-w64-i686-toolchain
update: true
- run: |
curl --fail -L --retry 5 -o srcinfo.json "https://github.com/$GITHUB_REPOSITORY/releases/download/srcinfo-cache/srcinfo.json"
python ci-generate-srcinfo.py --time-limit 19800 mingw . srcinfo.json
- uses: actions/upload-artifact@v2
with:
name: result
path: srcinfo.json
upload-srcinfo:
needs: update-srcinfo
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v2
with:
name: result
- uses: eine/tip@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: srcinfo-cache
rm: true
files: srcinfo.json

View File

@@ -31,3 +31,15 @@ jobs:
- name: CI-Build
run: MINGW_INSTALLS=${{ matrix.msystem }} ./ci-build.sh
- name: "Upload binaries"
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.msystem }}-packages
path: artifacts/*.pkg.tar.*
- name: "Upload sources"
uses: actions/upload-artifact@v2
with:
name: sources
path: artifacts/*.src.tar.*

View File

@@ -9,7 +9,7 @@ set -e
# Configure
cd "$(dirname "$0")"
source 'ci-library.sh'
deploy_enabled && mkdir artifacts
mkdir artifacts
git_config user.email 'ci@msys2.org'
git_config user.name 'MSYS2 Continuous Integration'
git remote add upstream 'https://github.com/MSYS2/MINGW-packages'
@@ -34,8 +34,8 @@ for package in "${packages[@]}"; do
execute 'Building binary' makepkg-mingw --noconfirm --noprogressbar --nocheck --syncdeps --rmdeps --cleanbuild
execute 'Building source' makepkg --noconfirm --noprogressbar --allsource --config '/etc/makepkg_mingw64.conf'
execute 'Installing' yes:pacman --noprogressbar --upgrade *"${PKGEXT}"
deploy_enabled && mv "${package}"/*"${PKGEXT}" artifacts
deploy_enabled && mv "${package}"/*"${SRCEXT}" artifacts
mv "${package}"/*"${PKGEXT}" artifacts
mv "${package}"/*"${SRCEXT}" artifacts
unset package
done

203
ci-generate-srcinfo.py Normal file
View File

@@ -0,0 +1,203 @@
#!/usr/bin/env python3
# Copyright 2017 Christoph Reiter
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
import sys
import argparse
import os
import json
import shutil
from collections import OrderedDict
import hashlib
import time
import subprocess
from concurrent.futures import ThreadPoolExecutor
from typing import List, Iterator, Tuple, Dict, Optional, Union, Collection
CacheEntry = Dict[str, Union[str, Collection[str]]]
CacheTuple = Tuple[str, CacheEntry]
Cache = Dict[str, CacheEntry]
def normalize_repo(repo: str) -> str:
if repo.endswith(".git"):
repo = repo.rsplit(".", 1)[0]
return repo
def normalize_path(path: str) -> str:
return path.replace("\\", "/")
def get_cache_key(pkgbuild_path: str) -> str:
pkgbuild_path = os.path.abspath(pkgbuild_path)
git_cwd = os.path.dirname(pkgbuild_path)
git_path = os.path.relpath(pkgbuild_path, git_cwd)
h = hashlib.new("SHA1")
with open(pkgbuild_path, "rb") as f:
h.update(f.read())
fileinfo = subprocess.check_output(
["git", "ls-files", "-s", "--full-name", git_path],
cwd=git_cwd).decode("utf-8").strip()
h.update(normalize_path(fileinfo).encode("utf-8"))
repo = subprocess.check_output(
["git", "ls-remote", "--get-url", "origin"],
cwd=git_cwd).decode("utf-8").strip()
repo = normalize_repo(repo)
h.update(repo.encode("utf-8"))
return h.hexdigest()
def get_srcinfo_for_pkgbuild(args: Tuple[str, str]) -> Optional[CacheTuple]:
pkgbuild_path, mode = args
pkgbuild_path = os.path.abspath(pkgbuild_path)
git_cwd = os.path.dirname(pkgbuild_path)
git_path = os.path.relpath(pkgbuild_path, git_cwd)
key = get_cache_key(pkgbuild_path)
bash = shutil.which("bash")
if bash is None:
print("ERROR: bash not found")
return None
print("Parsing %r" % pkgbuild_path)
try:
srcinfos = {}
if mode == "mingw":
for name in ["mingw32", "mingw64"]:
env = os.environ.copy()
env["MINGW_INSTALLS"] = name
srcinfos[name] = subprocess.check_output(
[bash, "/usr/bin/makepkg-mingw",
"--printsrcinfo", "-p", git_path],
cwd=git_cwd,
env=env).decode("utf-8")
else:
srcinfos["msys"] = subprocess.check_output(
[bash, "/usr/bin/makepkg",
"--printsrcinfo", "-p", git_path],
cwd=git_cwd).decode("utf-8")
repo = subprocess.check_output(
["git", "ls-remote", "--get-url", "origin"],
cwd=git_cwd).decode("utf-8").strip()
repo = normalize_repo(repo)
relpath = subprocess.check_output(
["git", "ls-files", "--full-name", git_path],
cwd=git_cwd).decode("utf-8").strip()
relpath = normalize_path(os.path.dirname(relpath))
date = subprocess.check_output(
["git", "log", "-1", "--format=%aI", git_path],
cwd=git_cwd).decode("utf-8").strip()
meta = {"repo": repo, "path": relpath, "date": date, "srcinfo": srcinfos}
except subprocess.CalledProcessError as e:
print("ERROR: %s %s" % (pkgbuild_path, e.output.splitlines()))
return None
return (key, meta)
def iter_pkgbuild_paths(repo_path: str) -> Iterator[str]:
repo_path = os.path.abspath(repo_path)
print("Searching for PKGBUILD files in %s" % repo_path)
for base, dirs, files in os.walk(repo_path):
for f in files:
if f == "PKGBUILD":
# in case we find a PKGBUILD, don't go deeper
del dirs[:]
path = os.path.join(base, f)
yield path
def get_srcinfo_from_cache(args: Tuple[str, Cache]) -> Tuple[str, Optional[CacheTuple]]:
pkgbuild_path, cache = args
key = get_cache_key(pkgbuild_path)
if key in cache:
return (pkgbuild_path, (key, cache[key]))
else:
return (pkgbuild_path, None)
def iter_srcinfo(repo_path: str, mode: str, cache: Cache) -> Iterator[Optional[CacheTuple]]:
with ThreadPoolExecutor() as executor:
to_parse: List[Tuple[str, str]] = []
pool_iter = executor.map(
get_srcinfo_from_cache, ((p, cache) for p in iter_pkgbuild_paths(repo_path)))
for pkgbuild_path, srcinfo in pool_iter:
if srcinfo is not None:
yield srcinfo
else:
to_parse.append((pkgbuild_path, mode))
print("Parsing PKGBUILD files...")
for srcinfo in executor.map(get_srcinfo_for_pkgbuild, to_parse):
yield srcinfo
def main(argv: List[str]) -> Optional[Union[int, str]]:
parser = argparse.ArgumentParser(description="Create SRCINFOs for all packages in a repo", allow_abbrev=False)
parser.add_argument('mode', choices=['msys', 'mingw'], help="The type of the repo")
parser.add_argument("repo_path", help="The path to GIT repo")
parser.add_argument("json_cache", help="The path to the json file used to fetch/store the results")
parser.add_argument("--time-limit", action="store",
type=int, dest="time_limit", default=0,
help='time after which it will stop and save, 0 means no limit')
args = parser.parse_args(argv[1:])
t = time.monotonic()
srcinfo_path = os.path.abspath(args.json_cache)
cache: Cache = {}
try:
with open(srcinfo_path, "rb") as h:
cache = json.loads(h.read())
except FileNotFoundError:
pass
srcinfos = []
for entry in iter_srcinfo(args.repo_path, args.mode, cache):
if entry is None:
continue
srcinfos.append(entry)
# So we stop before CI times out
if args.time_limit and time.monotonic() - t > args.time_limit:
print("time limit reached, stopping")
break
srcinfos_dict = OrderedDict(sorted(srcinfos))
with open(srcinfo_path, "wb") as h:
h.write(json.dumps(srcinfos_dict, indent=2).encode("utf-8"))
return None
if __name__ == "__main__":
sys.exit(main(sys.argv))

View File

@@ -1,7 +1,7 @@
From bacedeb21cd30101b787838d003d686ae3036838 Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Mon, 23 Feb 2015 21:46:45 +0000
Subject: [PATCH 1/7] lang: Allow both extensions and full filenames
Subject: [PATCH 1/9] lang: Allow both extensions and full filenames
Because many filetypes (e.g. make) are not indicated by the
file extension but instead by the full filename (Makefile).

View File

@@ -1,7 +1,7 @@
From d7dfee733c29dae96984be373db934298d4ac53f Mon Sep 17 00:00:00 2001
From: "K.Takata" <kentkt@csc.jp>
Date: Thu, 1 Jun 2017 22:19:25 +0900
Subject: [PATCH 2/7] win32: Detect Cygwin/MSYS PTY
Subject: [PATCH 2/9] win32: Detect Cygwin/MSYS PTY
When running Win32 version of Ag on mintty or other Cygwin/MSYS terminal
emulators, Ag cannot detect Cygwin/MSYS pty and it causes some problems.

View File

@@ -1,7 +1,7 @@
From ff4e9c3db5b42541494764ad921c80250733e84a Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Mon, 23 Feb 2015 22:12:15 +0000
Subject: [PATCH 3/7] options: Fix ordering problems with --color
Subject: [PATCH 3/9] options: Fix ordering problems with --color
Moved around the logic of setting opts.color so that:

View File

@@ -1,7 +1,7 @@
From b266b48b70a736927a8ee585fc888f270005973b Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Mon, 23 Feb 2015 22:16:54 +0000
Subject: [PATCH 4/7] lang: Add autotools (ac, am, in, m4, pc)
Subject: [PATCH 4/9] lang: Add autotools (ac, am, in, m4, pc)
---
src/lang.c | 1 +

View File

@@ -1,7 +1,7 @@
From 1ce3c7f6347a86f210cfa2578444fcb09a5aaa6c Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Mon, 23 Feb 2015 22:18:27 +0000
Subject: [PATCH 5/7] lang: Add to make (^Makefile, ^Makefile.Debug,
Subject: [PATCH 5/9] lang: Add to make (^Makefile, ^Makefile.Debug,
^Makefile.Release, *.make)
All but one addition are full filename patterns. The

View File

@@ -1,7 +1,7 @@
From add99f2fab7f6015e5a414c33248c3a8b3b20fe6 Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Mon, 23 Feb 2015 22:21:26 +0000
Subject: [PATCH 6/7] lang: Add makepkg (^PKGBUILD, diff, patch, in, install)
Subject: [PATCH 6/9] lang: Add makepkg (^PKGBUILD, diff, patch, in, install)
Used by the makepkg build system of ArchLinux and MSYS2
---

View File

@@ -1,7 +1,7 @@
From e7ff323818bfd2bbf7d00a885e5a28da9b36f64b Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Sat, 12 Dec 2015 19:55:47 +0000
Subject: [PATCH 7/7] lang: Add cmake (^CMakeLists.txt, ^CMakeCache.txt ..
Subject: [PATCH 7/9] lang: Add cmake (^CMakeLists.txt, ^CMakeCache.txt ..
.. ^CMakeError.log, ^CMakeOutput.log, cmake)
---

View File

@@ -0,0 +1,211 @@
From 127b82d81ff41cc4ab26695f6c42af2d7443909f Mon Sep 17 00:00:00 2001
From: Shlomi Fish <shlomif@shlomifish.org>
Date: Wed, 15 Apr 2020 20:23:52 +0300
Subject: [PATCH 8/9] Subject: [PATCH 8/9] Fix multiple global symbols
definitions.
See the use of extern here:
* https://www.geeksforgeeks.org/understanding-extern-keyword-in-c/
* https://en.wikipedia.org/wiki/External_variable
*
https://stackoverflow.com/questions/496448/how-to-correctly-use-the-extern-keyword-in-c
---
src/ignore.c | 2 ++
src/ignore.h | 2 +-
src/log.c | 1 +
src/log.h | 2 +-
src/options.c | 2 ++
src/options.h | 2 +-
src/search.c | 13 +++++++++++++
src/search.h | 20 ++++++++++----------
src/util.c | 2 ++
src/util.h | 4 ++--
10 files changed, 35 insertions(+), 15 deletions(-)
diff --git a/src/ignore.c b/src/ignore.c
index fa41889..32464d7 100644
--- a/src/ignore.c
+++ b/src/ignore.c
@@ -20,6 +20,8 @@
const int fnmatch_flags = FNM_PATHNAME;
#endif
+ignores *root_ignores;
+
/* TODO: build a huge-ass list of files we want to ignore by default (build cache stuff, pyc files, etc) */
const char *evil_hardcoded_ignore_files[] = {
diff --git a/src/ignore.h b/src/ignore.h
index 20d5a6a..8db0f37 100644
--- a/src/ignore.h
+++ b/src/ignore.h
@@ -29,7 +29,7 @@ struct ignores {
};
typedef struct ignores ignores;
-ignores *root_ignores;
+extern ignores *root_ignores;
extern const char *evil_hardcoded_ignore_files[];
extern const char *ignore_pattern_files[];
diff --git a/src/log.c b/src/log.c
index 1481b6d..f6f4e9a 100644
--- a/src/log.c
+++ b/src/log.c
@@ -4,6 +4,7 @@
#include "log.h"
#include "util.h"
+pthread_mutex_t print_mtx = PTHREAD_MUTEX_INITIALIZER;
static enum log_level log_threshold = LOG_LEVEL_ERR;
void set_log_level(enum log_level threshold) {
diff --git a/src/log.h b/src/log.h
index 85847ee..318622c 100644
--- a/src/log.h
+++ b/src/log.h
@@ -9,7 +9,7 @@
#include <pthread.h>
#endif
-pthread_mutex_t print_mtx;
+extern pthread_mutex_t print_mtx;
enum log_level {
LOG_LEVEL_DEBUG = 10,
diff --git a/src/options.c b/src/options.c
index a469845..0ff5526 100644
--- a/src/options.c
+++ b/src/options.c
@@ -21,6 +21,8 @@ const char *color_line_number = "\033[1;33m"; /* bold yellow */
const char *color_match = "\033[30;43m"; /* black with yellow background */
const char *color_path = "\033[1;32m"; /* bold green */
+cli_options opts;
+
/* TODO: try to obey out_fd? */
void usage(void) {
printf("\n");
diff --git a/src/options.h b/src/options.h
index 990ce6a..09cd058 100644
--- a/src/options.h
+++ b/src/options.h
@@ -101,7 +101,7 @@ typedef struct {
} cli_options;
/* global options. parse_options gives it sane values, everything else reads from it */
-cli_options opts;
+extern cli_options opts;
typedef struct option option_t;
diff --git a/src/search.c b/src/search.c
index ff5e386..8539bac 100644
--- a/src/search.c
+++ b/src/search.c
@@ -2,6 +2,19 @@
#include "print.h"
#include "scandir.h"
+size_t alpha_skip_lookup[256];
+size_t *find_skip_lookup;
+uint8_t h_table[H_SIZE] __attribute__((aligned(64)));
+
+work_queue_t *work_queue = NULL;
+work_queue_t *work_queue_tail = NULL;
+int done_adding_files = 0;
+pthread_cond_t files_ready = PTHREAD_COND_INITIALIZER;
+pthread_mutex_t stats_mtx = PTHREAD_MUTEX_INITIALIZER;
+pthread_mutex_t work_queue_mtx = PTHREAD_MUTEX_INITIALIZER;
+
+symdir_t *symhash = NULL;
+
void search_buf(const char *buf, const size_t buf_len,
const char *dir_full_path) {
int binary = -1; /* 1 = yes, 0 = no, -1 = don't know */
diff --git a/src/search.h b/src/search.h
index 1071114..a1bc5d7 100644
--- a/src/search.h
+++ b/src/search.h
@@ -31,9 +31,9 @@
#include "uthash.h"
#include "util.h"
-size_t alpha_skip_lookup[256];
-size_t *find_skip_lookup;
-uint8_t h_table[H_SIZE] __attribute__((aligned(64)));
+extern size_t alpha_skip_lookup[256];
+extern size_t *find_skip_lookup;
+extern uint8_t h_table[H_SIZE] __attribute__((aligned(64)));
struct work_queue_t {
char *path;
@@ -41,12 +41,12 @@ struct work_queue_t {
};
typedef struct work_queue_t work_queue_t;
-work_queue_t *work_queue;
-work_queue_t *work_queue_tail;
-int done_adding_files;
-pthread_cond_t files_ready;
-pthread_mutex_t stats_mtx;
-pthread_mutex_t work_queue_mtx;
+extern work_queue_t *work_queue;
+extern work_queue_t *work_queue_tail;
+extern int done_adding_files;
+extern pthread_cond_t files_ready;
+extern pthread_mutex_t stats_mtx;
+extern pthread_mutex_t work_queue_mtx;
/* For symlink loop detection */
@@ -64,7 +64,7 @@ typedef struct {
UT_hash_handle hh;
} symdir_t;
-symdir_t *symhash;
+extern symdir_t *symhash;
void search_buf(const char *buf, const size_t buf_len,
const char *dir_full_path);
diff --git a/src/util.c b/src/util.c
index cb23914..0431148 100644
--- a/src/util.c
+++ b/src/util.c
@@ -21,6 +21,8 @@
} \
return ptr;
+FILE *out_fd = NULL;
+ag_stats stats;
void *ag_malloc(size_t size) {
void *ptr = malloc(size);
CHECK_AND_RETURN(ptr)
diff --git a/src/util.h b/src/util.h
index 0c9b9b1..338b05f 100644
--- a/src/util.h
+++ b/src/util.h
@@ -12,7 +12,7 @@
#include "log.h"
#include "options.h"
-FILE *out_fd;
+extern FILE *out_fd;
#ifndef TRUE
#define TRUE 1
@@ -51,7 +51,7 @@ typedef struct {
} ag_stats;
-ag_stats stats;
+extern ag_stats stats;
/* Union to translate between chars and words without violating strict aliasing */
typedef union {
--
2.27.0

View File

@@ -0,0 +1,26 @@
From 9ded9f120b3961580ea7b08de54d6ee7dcd7b603 Mon Sep 17 00:00:00 2001
From: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Date: Tue, 18 Aug 2020 12:42:13 +0900
Subject: [PATCH 9/9] win32: Use "<NUL" for "git config"
Git for Windows break terminal sequence after git-config.
---
src/options.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/options.c b/src/options.c
index 2145b33..c38f8d3 100644
--- a/src/options.c
+++ b/src/options.c
@@ -698,7 +698,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
char *gitconfig_res = NULL;
#ifdef _WIN32
- gitconfig_file = popen("git config -z --path --get core.excludesfile 2>NUL", "r");
+ gitconfig_file = popen("git config -z --path --get core.excludesfile 2>NUL <NUL", "r");
#else
gitconfig_file = popen("git config -z --path --get core.excludesfile 2>/dev/null", "r");
#endif
--
2.27.0

View File

@@ -6,7 +6,7 @@ _longname=the_silver_searcher
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.2.0
pkgrel=1
pkgrel=2
pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)"
arch=('any')
url="https://geoff.greer.fm/ag"
@@ -24,15 +24,19 @@ source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/ggreer/the_silver_s
"0004-lang-Add-autotools-ac-am-in-m4-pc.patch"
"0005-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch"
"0006-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch"
"0007-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch")
"0007-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch"
"0008-Fix-multiple-global-symbols-definitions.patch"
"0009-win32-Use-NUL-for-git-config.patch")
sha256sums=('6a0a19ca5e73b2bef9481c29a508d2413ca1a0a9a5a6b1bd9bbd695a7626cbf9'
'9a3c1cc11547219f699e953e05c53b779f396b3d54d1410ae78a62f7550ca7c7'
'45b75b164cb283c4324e27a46c744e0f2df86e4860506e9a4f2c1e98e848f51e'
'63ded2c4bf859faa8dc33cbda89c4bbdb047b014d7b3b4d3f77f9dfb5d1a0ee4'
'3a42e02928f7ae288de69f91c198c6111216f0af23d2de1bc65d8f5e5a28a401'
'fada103d58911e876af36e76675793764c4019e009351d615dede9c3ba7618d1'
'b80e3efd854425e0e5df29cdf585b5132b5ab19e93c06713a4f4f0653bed5f84'
'0659935f2f5e6c38260a603ef696de7e3e5d8dd7f62ec7711b58bd657ab5b511')
'dd33d804a654073acbb78cde1caf7b7c6feea13965f1cfa68588f84f4adcc8ef'
'247a0008a00cbd6c045c6872d61ded1fa455e31faff74ef6932fd4f921681f0d'
'da69609723c4f019f822af81163914f924998575c009836cd2d4ea887acd4977'
'1972392e4762bff91d4e542d478c0a01ddd4dbd507543867aa3b2dd3f159084b'
'a16340cc33cdf95300f353ae87d3af2a0c667987ea9ce9b8c77d3e5c9a8a1007'
'f38d5807ba0486e5004ff86d76a222221a390ac58475c464bc446d4154da8d75'
'88fc3742a0bea4a1f1d533ad4f0b841423930e40639d4a9ea16312eadf21415a'
'ae8cc32f94432b6482a379b0fdfc4095c836f3a947363a101ca69362b5a7f0a1'
'6d98aedccb3c380fe2069373e8b45ddcc8d6c4936cb37da7967a7d5d29557164')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
@@ -53,7 +57,9 @@ prepare() {
0004-lang-Add-autotools-ac-am-in-m4-pc.patch \
0005-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch \
0006-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch \
0007-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch
0007-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch \
0008-Fix-multiple-global-symbols-definitions.patch \
0009-win32-Use-NUL-for-git-config.patch
# configure.ac forces -O2, so force it to -O0 if debugging.
if check_option "debug" "y"; then

View File

@@ -0,0 +1,48 @@
# Maintainer: fauxpark <fauxpark@gmail.com>
_realname=avr-gdb
pkgbase=mingw-w64-${_realname}
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
pkgver=9.2
pkgrel=1
pkgdesc='The GNU Debugger for AVR (mingw-w64)'
arch=('any')
license=('GPL')
url='https://www.gnu.org/software/gdb/'
source=("https://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz")
sha256sums=('360cd7ae79b776988e89d8f9a01c985d0b1fa21c767a4295e5f88cb49175c555')
prepare() {
cd ${srcdir}/gdb-${pkgver}
mkdir gdb-build
}
build() {
cd ${srcdir}/gdb-${pkgver}/gdb-build
../configure \
--build=${MINGW_CHOST} \
--prefix=${MINGW_PREFIX} \
--target=avr \
--disable-nls \
--disable-debug \
--disable-dependency-tracking \
--disable-binutils \
--disable-libssp \
--disable-install-libbfd \
--disable-install-libiberty \
--with-system-readline
make
}
package() {
cd ${srcdir}/gdb-${pkgver}/gdb-build
make DESTDIR="$pkgdir" install-gdb
cd ${pkgdir}${MINGW_PREFIX}
# Remove files that conflict with native gdb
rm -rf include share/gdb share/info
}

View File

@@ -0,0 +1,37 @@
# Maintainer: fauxpark <fauxpark@gmail.com>
_realname=avr-libc
pkgbase=mingw-w64-${_realname}
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
pkgver=2.0.0
pkgrel=1
pkgdesc='The C runtime library for the AVR family of microcontrollers (mingw-w64)'
arch=('any')
license=('BSD')
url='https://savannah.nongnu.org/projects/avr-libc/'
options=(!strip)
depends=("${MINGW_PACKAGE_PREFIX}-avr-gcc")
source=("https://download.savannah.gnu.org/releases/avr-libc/avr-libc-${pkgver}.tar.bz2")
sha256sums=('b2dd7fd2eefd8d8646ef6a325f6f0665537e2f604ed02828ced748d49dc85b97')
prepare() {
cd ${srcdir}/avr-libc-${pkgver}
mkdir avr-libc-build
}
build() {
cd ${srcdir}/avr-libc-${pkgver}/avr-libc-build
../configure \
--build=${MINGW_CHOST} \
--host=avr \
--prefix=${MINGW_PREFIX}
make
}
package() {
cd ${srcdir}/${_realname}-${pkgver}/avr-libc-build
make DESTDIR="$pkgdir" install
}

View File

@@ -0,0 +1,188 @@
diff --git a/cmake/AwsCFlags.cmake b/cmake/AwsCFlags.cmake
index 42d146e82..cb9d7f36b 100644
--- a/cmake/AwsCFlags.cmake
+++ b/cmake/AwsCFlags.cmake
@@ -68,6 +68,10 @@ function(aws_set_common_properties target)
if (LEGACY_COMPILER_SUPPORT)
list(APPEND AWS_C_FLAGS -Wno-strict-aliasing)
endif()
+
+ if(CMAKE_C_IMPLICIT_LINK_LIBRARIES MATCHES "mingw32")
+ list(APPEND AWS_C_FLAGS -D__USE_MINGW_ANSI_STDIO=1 -Wno-unused-local-typedefs)
+ endif()
endif()
check_include_file(stdint.h HAS_STDINT)
diff --git a/include/aws/common/byte_order.inl b/include/aws/common/byte_order.inl
index 69ee56792..847e726af 100644
--- a/include/aws/common/byte_order.inl
+++ b/include/aws/common/byte_order.inl
@@ -19,11 +19,11 @@
#include <aws/common/byte_order.h>
#include <aws/common/common.h>
-#ifdef _MSC_VER
+#ifdef _WIN32
# include <stdlib.h>
#else
# include <netinet/in.h>
-#endif /* _MSC_VER */
+#endif /* _WIN32 */
AWS_EXTERN_C_BEGIN
@@ -49,7 +49,7 @@ AWS_STATIC_IMPL uint64_t aws_hton64(uint64_t x) {
uint64_t v;
__asm__("bswap %q0" : "=r"(v) : "0"(x));
return v;
-#elif defined(_MSC_VER)
+#elif defined(_WIN32)
return _byteswap_uint64(x);
#else
uint32_t low = (uint32_t)x;
@@ -69,7 +69,7 @@ AWS_STATIC_IMPL uint64_t aws_ntoh64(uint64_t x) {
* Convert 32 bit integer from host to network byte order.
*/
AWS_STATIC_IMPL uint32_t aws_hton32(uint32_t x) {
-#ifdef _MSC_VER
+#ifdef _WIN32
return aws_is_big_endian() ? x : _byteswap_ulong(x);
#else
return htonl(x);
@@ -126,7 +126,7 @@ AWS_STATIC_IMPL double aws_htonf64(double x) {
* Convert 32 bit integer from network to host byte order.
*/
AWS_STATIC_IMPL uint32_t aws_ntoh32(uint32_t x) {
-#ifdef _MSC_VER
+#ifdef _WIN32
return aws_is_big_endian() ? x : _byteswap_ulong(x);
#else
return ntohl(x);
@@ -151,7 +151,7 @@ AWS_STATIC_IMPL double aws_ntohf64(double x) {
* Convert 16 bit integer from host to network byte order.
*/
AWS_STATIC_IMPL uint16_t aws_hton16(uint16_t x) {
-#ifdef _MSC_VER
+#ifdef _WIN32
return aws_is_big_endian() ? x : _byteswap_ushort(x);
#else
return htons(x);
@@ -162,7 +162,7 @@ AWS_STATIC_IMPL uint16_t aws_hton16(uint16_t x) {
* Convert 16 bit integer from network to host byte order.
*/
AWS_STATIC_IMPL uint16_t aws_ntoh16(uint16_t x) {
-#ifdef _MSC_VER
+#ifdef _WIN32
return aws_is_big_endian() ? x : _byteswap_ushort(x);
#else
return ntohs(x);
diff --git a/include/aws/common/logging.h b/include/aws/common/logging.h
index 8ef813c75..bfef7cfad 100644
--- a/include/aws/common/logging.h
+++ b/include/aws/common/logging.h
@@ -111,7 +111,9 @@ struct aws_logger_vtable {
aws_log_subject_t subject,
const char *format,
...)
-#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
+#if defined(__MINGW32__)
+ __attribute__((format(gnu_printf, 4, 5)))
+#elif defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
__attribute__((format(printf, 4, 5)))
#endif /* non-ms compilers: TODO - find out what versions format support was added in */
;
diff --git a/include/aws/testing/aws_test_harness.h b/include/aws/testing/aws_test_harness.h
index 88ef03e21..d598e2f97 100644
--- a/include/aws/testing/aws_test_harness.h
+++ b/include/aws/testing/aws_test_harness.h
@@ -365,6 +365,9 @@ struct aws_test_harness {
};
#if defined(_WIN32)
+# ifdef __MINGW32__
+# include <winsock2.h>
+# endif
# include <windows.h>
static LONG WINAPI s_test_print_stack_trace(struct _EXCEPTION_POINTERS *exception_pointers) {
# if !defined(AWS_HEADER_CHECKER)
diff --git a/source/windows/environment.c b/source/windows/environment.c
index 8c042ddc5..ae50d0a59 100644
--- a/source/windows/environment.c
+++ b/source/windows/environment.c
@@ -23,12 +23,16 @@ int aws_get_environment_value(
const struct aws_string *variable_name,
struct aws_string **value_out) {
-#pragma warning(push)
-#pragma warning(disable : 4996)
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable : 4996)
+#endif
const char *value = getenv(aws_string_c_str(variable_name));
-#pragma warning(pop)
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
if (value == NULL) {
*value_out = NULL;
diff --git a/source/windows/system_info.c b/source/windows/system_info.c
index acbfd97ce..927a81b4a 100644
--- a/source/windows/system_info.c
+++ b/source/windows/system_info.c
@@ -40,7 +40,9 @@ void aws_debug_break(void) {
}
/* If I meet the engineer that wrote the dbghelp.h file for the windows 8.1 SDK we're gonna have words! */
-#pragma warning(disable : 4091)
+#ifdef _MSC_VER
+# pragma warning(disable : 4091)
+#endif
#include <dbghelp.h>
struct win_symbol_data {
@@ -124,7 +126,7 @@ static void s_init_dbghelp_impl(void *user_data) {
return;
}
-static bool s_init_dbghelp() {
+static bool s_init_dbghelp(void) {
if (AWS_LIKELY(s_SymInitialize)) {
return true;
}
@@ -188,7 +190,7 @@ char **aws_backtrace_symbols(void *const *stack, size_t num_frames) {
/* no luck, record the address and last error */
DWORD last_error = GetLastError();
int len = snprintf(
- sym_buf, AWS_ARRAY_SIZE(sym_buf), "at 0x%p: Failed to lookup symbol: error %u", stack[i], last_error);
+ sym_buf, AWS_ARRAY_SIZE(sym_buf), "at 0x%p: Failed to lookup symbol: error %lu", stack[i], last_error);
if (len > 0) {
struct aws_byte_cursor sym_cur = aws_byte_cursor_from_array(sym_buf, len);
aws_byte_buf_append_dynamic(&symbols, &sym_cur);
@@ -209,7 +211,7 @@ char **aws_backtrace_addr2line(void *const *frames, size_t stack_depth) {
void aws_backtrace_print(FILE *fp, void *call_site_data) {
struct _EXCEPTION_POINTERS *exception_pointers = call_site_data;
if (exception_pointers) {
- fprintf(fp, "** Exception 0x%x occured **\n", exception_pointers->ExceptionRecord->ExceptionCode);
+ fprintf(fp, "** Exception 0x%lx occured **\n", exception_pointers->ExceptionRecord->ExceptionCode);
}
if (!s_init_dbghelp()) {
diff --git a/tests/atomics_test.c b/tests/atomics_test.c
index 36dbbd1a5..90f0497e2 100644
--- a/tests/atomics_test.c
+++ b/tests/atomics_test.c
@@ -23,7 +23,9 @@
#ifdef _WIN32
# include <malloc.h>
-# define alloca _alloca
+# ifdef _MSC_VER
+# define alloca _alloca
+# endif
#elif defined(__FreeBSD__) || defined(__NetBSD__)
# include <stdlib.h>
#else

View File

@@ -0,0 +1,11 @@
diff -aurp AwsChecksums/source/intel/cpuid.c AwsChecksums-orig/source/intel/cpuid.c
--- AwsChecksums/source/intel/cpuid.c 2020-08-08 21:25:59.314437100 +0000
+++ AwsChecksums-orig/source/intel/cpuid.c 2020-08-08 21:25:44.210636300 +0000
@@ -40,4 +40,9 @@ int aws_checksums_do_cpu_id(int32_t *cpu
+#else
+int aws_checksums_do_cpu_id(int32_t *cpuid) {
+ (void)cpuid;
+ return 0;
+}
#endif /* defined(__x86_64__) && !(defined(__GNUC__) && defined(DEBUG_BUILD)) */

View File

@@ -0,0 +1,52 @@
# Maintainer: Jeroen Ooms <jeroen@berkeley.edu>
_realname=aws-sdk-cpp
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=1.7.365
pkgrel=1
pkgdesc="AWS SDK for C++ (mingw-w64)"
arch=('any')
url="https://github.com/aws/aws-sdk-cpp"
license=('Apache-2.0')
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja")
options=('strip' 'staticlibs')
source=("${_realname}-${pkgver}.tar.gz::https://github.com/aws/aws-sdk-cpp/archive/${pkgver}.tar.gz"
"aws-sdk-cpp-pr-1333.patch"
"Patch-cmake-submodules.patch"
"BuildAwsCCommon.patch"
"BuildAwsChecksums.patch")
sha256sums=('95e3f40efaea7b232741bfb76c54c9507c02631edfc198720b0e84be0ebb5e9d'
'14abbdb71e615d93d5aa1e83f94f994b7fbe05edc63477e37325a6f5148c7278'
'edb6ef4ac7d3e48dfc1fa4b0b02a6a191bb405ae69c19d9f7bcf3856269bc6fb'
'957eb1cc68b151622b7667e6a13506c96fdef8f566a227ac1608c9e02d3826d3'
'20359b6e79430d1deb69bb05214a2f18258cb54ca56e15cd24605ad0c0094df1')
prepare() {
cd "${_realname}-${pkgver}"
patch -p1 -i "${srcdir}/aws-sdk-cpp-pr-1333.patch"
patch -p1 -i "${srcdir}/Patch-cmake-submodules.patch"
}
build() {
[[ -d "${srcdir}"/build-${CARCH}-static ]] && rm -rf "${srcdir}"/build-${CARCH}-static
mkdir -p "${srcdir}"/build-${CARCH}-static && cd "${srcdir}"/build-${CARCH}-static
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
-DBUILD_ONLY="config;s3;transfer" \
-DENABLE_UNITY_BUILD=ON \
-DAUTORUN_UNIT_TESTS=OFF \
../${_realname}-${pkgver}
${MINGW_PREFIX}/bin/cmake --build .
}
package() {
cd "${srcdir}"/build-${CARCH}-static
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build . --target install
}

View File

@@ -0,0 +1,23 @@
diff -aurp aws-sdk-cpp-1.7.288-orig/third-party/cmake/BuildAwsCCommon.cmake aws-sdk-cpp-1.7.288/third-party/cmake/BuildAwsCCommon.cmake
--- aws-sdk-cpp-1.7.288-orig/third-party/cmake/BuildAwsCCommon.cmake 2020-08-08 14:05:06.174688800 +0000
+++ aws-sdk-cpp-1.7.288/third-party/cmake/BuildAwsCCommon.cmake 2020-08-08 14:03:44.967180800 +0000
@@ -42,6 +42,7 @@ else()
GIT_TAG ${AWS_C_COMMON_TAG}
BUILD_IN_SOURCE 0
UPDATE_COMMAND ""
+ PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/../../../BuildAwsCCommon.patch
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${AWS_DEPS_INSTALL_DIR}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
diff -aurp aws-sdk-cpp-1.7.288-orig/third-party/cmake/BuildAwsChecksums.cmake aws-sdk-cpp-1.7.288/third-party/cmake/BuildAwsChecksums.cmake
--- aws-sdk-cpp-1.7.288-orig/third-party/cmake/BuildAwsChecksums.cmake 2020-08-08 14:05:06.174688800 +0000
+++ aws-sdk-cpp-1.7.288/third-party/cmake/BuildAwsChecksums.cmake 2020-08-08 14:03:44.967180800 +0000
@@ -42,6 +42,7 @@ else()
GIT_TAG ${AWS_CHECKSUMS_TAG}
BUILD_IN_SOURCE 0
UPDATE_COMMAND ""
+ PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/../../../BuildAwsChecksums.patch
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${AWS_DEPS_INSTALL_DIR}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}

View File

@@ -0,0 +1,291 @@
From f9b4499ccb63ef02d8c9de462fbbcf301eb1907a Mon Sep 17 00:00:00 2001
From: Daniel Schulte <daniel.schulte@picture-instruments.com>
Date: Tue, 3 Mar 2020 11:09:15 +0100
Subject: [PATCH] Add support for building with MinGW
---
aws-cpp-sdk-core/include/aws/core/utils/Array.h | 8 ++++----
.../include/aws/core/utils/crypto/bcrypt/CryptoImpl.h | 7 +++++++
.../include/aws/core/utils/event/EventHeader.h | 10 ++++++++++
.../source/http/windows/WinHttpSyncHttpClient.cpp | 4 ++--
.../source/http/windows/WinINetSyncHttpClient.cpp | 2 +-
.../source/http/windows/WinSyncHttpClient.cpp | 2 +-
.../source/platform/windows/Environment.cpp | 5 +++++
.../source/platform/windows/FileSystem.cpp | 7 ++++++-
.../source/platform/windows/OSVersionInfo.cpp | 2 ++
.../source/utils/crypto/factory/Factories.cpp | 4 ++--
.../BucketAndObjectOperationTest.cpp | 4 ++--
cmake/compiler_settings.cmake | 6 ++++++
.../source/platform/windows/PlatformTesting.cpp | 2 ++
13 files changed, 50 insertions(+), 13 deletions(-)
diff --git a/aws-cpp-sdk-core/include/aws/core/utils/Array.h b/aws-cpp-sdk-core/include/aws/core/utils/Array.h
index 1dbb9020f4..6768b6b850 100644
--- a/aws-cpp-sdk-core/include/aws/core/utils/Array.h
+++ b/aws-cpp-sdk-core/include/aws/core/utils/Array.h
@@ -64,7 +64,7 @@ namespace Aws
{
m_data.reset(Aws::NewArray<T>(m_size, ARRAY_ALLOCATION_TAG));
-#ifdef _WIN32
+#ifdef _MSC_VER
std::copy(arrayToCopy, arrayToCopy + arraySize, stdext::checked_array_iterator< T * >(m_data.get(), m_size));
#else
std::copy(arrayToCopy, arrayToCopy + arraySize, m_data.get());
@@ -92,7 +92,7 @@ namespace Aws
if(arr->m_size > 0 && arr->m_data)
{
size_t arraySize = arr->m_size;
-#ifdef _WIN32
+#ifdef _MSC_VER
std::copy(arr->m_data.get(), arr->m_data.get() + arraySize, stdext::checked_array_iterator< T * >(m_data.get() + location, m_size));
#else
std::copy(arr->m_data.get(), arr->m_data.get() + arraySize, m_data.get() + location);
@@ -111,7 +111,7 @@ namespace Aws
{
m_data.reset(Aws::NewArray<T>(m_size, ARRAY_ALLOCATION_TAG));
-#ifdef _WIN32
+#ifdef _MSC_VER
std::copy(other.m_data.get(), other.m_data.get() + other.m_size, stdext::checked_array_iterator< T * >(m_data.get(), m_size));
#else
std::copy(other.m_data.get(), other.m_data.get() + other.m_size, m_data.get());
@@ -144,7 +144,7 @@ namespace Aws
{
m_data.reset(Aws::NewArray<T>(m_size, ARRAY_ALLOCATION_TAG));
-#ifdef _WIN32
+#ifdef _MSC_VER
std::copy(other.m_data.get(), other.m_data.get() + other.m_size, stdext::checked_array_iterator< T * >(m_data.get(), m_size));
#else
std::copy(other.m_data.get(), other.m_data.get() + other.m_size, m_data.get());
diff --git a/aws-cpp-sdk-core/include/aws/core/utils/crypto/bcrypt/CryptoImpl.h b/aws-cpp-sdk-core/include/aws/core/utils/crypto/bcrypt/CryptoImpl.h
index 992efab47c..406380033a 100644
--- a/aws-cpp-sdk-core/include/aws/core/utils/crypto/bcrypt/CryptoImpl.h
+++ b/aws-cpp-sdk-core/include/aws/core/utils/crypto/bcrypt/CryptoImpl.h
@@ -39,7 +39,14 @@ namespace Aws
{
namespace Crypto
{
+ #ifdef __MINGW32__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wunused-variable"
+ #endif
static const char* SecureRandom_BCrypt_Tag = "SecureRandom_BCrypt";
+ #ifdef __MINGW32__
+ #pragma GCC diagnostic pop
+ #endif
class SecureRandomBytes_BCrypt : public SecureRandomBytes
{
diff --git a/aws-cpp-sdk-core/include/aws/core/utils/event/EventHeader.h b/aws-cpp-sdk-core/include/aws/core/utils/event/EventHeader.h
index 2041b208da..6fb333bff7 100644
--- a/aws-cpp-sdk-core/include/aws/core/utils/event/EventHeader.h
+++ b/aws-cpp-sdk-core/include/aws/core/utils/event/EventHeader.h
@@ -24,6 +24,12 @@
#include <aws/event-stream/event_stream.h>
#include <cassert>
+#ifdef __MINGW32__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#pragma GCC diagnostic ignored "-Wuninitialized"
+#endif
+
namespace Aws
{
namespace Utils
@@ -319,3 +325,7 @@ namespace Aws
}
}
}
+
+#ifdef __MINGW32__
+#pragma GCC diagnostic pop
+#endif
diff --git a/aws-cpp-sdk-core/source/http/windows/WinHttpSyncHttpClient.cpp b/aws-cpp-sdk-core/source/http/windows/WinHttpSyncHttpClient.cpp
index 4a0f80a161..a98635f706 100644
--- a/aws-cpp-sdk-core/source/http/windows/WinHttpSyncHttpClient.cpp
+++ b/aws-cpp-sdk-core/source/http/windows/WinHttpSyncHttpClient.cpp
@@ -267,7 +267,7 @@ bool WinHttpSyncHttpClient::DoQueryHeaders(void* hHttpRequest, std::shared_ptr<H
wmemset(contentTypeStr, 0, static_cast<size_t>(dwSize / sizeof(wchar_t)));
WinHttpQueryHeaders(hHttpRequest, WINHTTP_QUERY_CONTENT_TYPE, nullptr, &contentTypeStr, &dwSize, 0);
- if (contentTypeStr[0] != NULL)
+ if (contentTypeStr[0])
{
Aws::String contentStr = StringUtils::FromWString(contentTypeStr);
response->SetContentType(contentStr);
@@ -298,7 +298,7 @@ bool WinHttpSyncHttpClient::DoQueryHeaders(void* hHttpRequest, std::shared_ptr<H
bool WinHttpSyncHttpClient::DoSendRequest(void* hHttpRequest) const
{
- return (WinHttpSendRequest(hHttpRequest, NULL, NULL, 0, 0, 0, NULL) != 0);
+ return (WinHttpSendRequest(hHttpRequest, NULL, 0, 0, 0, 0, 0) != 0);
}
bool WinHttpSyncHttpClient::DoReadData(void* hHttpRequest, char* body, uint64_t size, uint64_t& read) const
diff --git a/aws-cpp-sdk-core/source/http/windows/WinINetSyncHttpClient.cpp b/aws-cpp-sdk-core/source/http/windows/WinINetSyncHttpClient.cpp
index 8b42c64dab..ef1fd99975 100644
--- a/aws-cpp-sdk-core/source/http/windows/WinINetSyncHttpClient.cpp
+++ b/aws-cpp-sdk-core/source/http/windows/WinINetSyncHttpClient.cpp
@@ -228,7 +228,7 @@ bool WinINetSyncHttpClient::DoQueryHeaders(void* hHttpRequest, std::shared_ptr<H
char contentTypeStr[1024];
dwSize = sizeof(contentTypeStr);
HttpQueryInfoA(hHttpRequest, HTTP_QUERY_CONTENT_TYPE, &contentTypeStr, &dwSize, 0);
- if (contentTypeStr[0] != NULL)
+ if (contentTypeStr[0])
{
response->SetContentType(contentTypeStr);
AWS_LOGSTREAM_DEBUG(GetLogTag(), "Received content type " << contentTypeStr);
diff --git a/aws-cpp-sdk-core/source/http/windows/WinSyncHttpClient.cpp b/aws-cpp-sdk-core/source/http/windows/WinSyncHttpClient.cpp
index 3758006a53..2b4ce940b7 100644
--- a/aws-cpp-sdk-core/source/http/windows/WinSyncHttpClient.cpp
+++ b/aws-cpp-sdk-core/source/http/windows/WinSyncHttpClient.cpp
@@ -322,7 +322,7 @@ void WinSyncHttpClient::MakeRequestInternal(HttpRequest& request,
}
}
- if (!success && !IsRequestProcessingEnabled() || !ContinueRequest(request))
+ if (!success && (!IsRequestProcessingEnabled() || !ContinueRequest(request)))
{
response->SetClientErrorType(CoreErrors::USER_CANCELLED);
response->SetClientErrorMessage("Request processing disabled or continuation cancelled by user's continuation handler.");
diff --git a/aws-cpp-sdk-core/source/platform/windows/Environment.cpp b/aws-cpp-sdk-core/source/platform/windows/Environment.cpp
index fd8d58f291..097274a56b 100644
--- a/aws-cpp-sdk-core/source/platform/windows/Environment.cpp
+++ b/aws-cpp-sdk-core/source/platform/windows/Environment.cpp
@@ -29,6 +29,7 @@ that would need to be manually freed in all the client functions, just copy it i
*/
Aws::String GetEnv(const char *variableName)
{
+#ifdef _MSC_VER
char* variableValue = nullptr;
std::size_t valueSize = 0;
auto queryResult = _dupenv_s(&variableValue, &valueSize, variableName);
@@ -41,6 +42,10 @@ Aws::String GetEnv(const char *variableName)
}
return result;
+#else // __MINGW32__
+ auto variableValue = std::getenv(variableName);
+ return Aws::String( variableValue ? variableValue : "" );
+#endif
}
} // namespace Environment
diff --git a/aws-cpp-sdk-core/source/platform/windows/FileSystem.cpp b/aws-cpp-sdk-core/source/platform/windows/FileSystem.cpp
index 49af3c1f79..f427fa9233 100644
--- a/aws-cpp-sdk-core/source/platform/windows/FileSystem.cpp
+++ b/aws-cpp-sdk-core/source/platform/windows/FileSystem.cpp
@@ -21,7 +21,9 @@
#include <iostream>
#include <Userenv.h>
-#pragma warning( disable : 4996)
+#ifdef _MSC_VER
+# pragma warning( disable : 4996)
+#endif
using namespace Aws::Utils;
namespace Aws
@@ -314,6 +316,9 @@ Aws::String CreateTempFilePath()
{
#ifdef _MSC_VER
#pragma warning(disable: 4996) // _CRT_SECURE_NO_WARNINGS
+#elif !defined(L_tmpnam_s)
+ // Definition from the MSVC stdio.h
+ #define L_tmpnam_s (sizeof("\\") + 16)
#endif
char s_tempName[L_tmpnam_s+1];
diff --git a/aws-cpp-sdk-core/source/platform/windows/OSVersionInfo.cpp b/aws-cpp-sdk-core/source/platform/windows/OSVersionInfo.cpp
index 23f395f6bb..18bd5836da 100644
--- a/aws-cpp-sdk-core/source/platform/windows/OSVersionInfo.cpp
+++ b/aws-cpp-sdk-core/source/platform/windows/OSVersionInfo.cpp
@@ -19,7 +19,9 @@
#include <iomanip>
+#ifdef _MSC_VER
#pragma warning(disable: 4996)
+#endif
#include <windows.h>
#include <stdio.h>
namespace Aws
diff --git a/aws-cpp-sdk-core/source/utils/crypto/factory/Factories.cpp b/aws-cpp-sdk-core/source/utils/crypto/factory/Factories.cpp
index d7cb481d5c..3b34d7fc62 100644
--- a/aws-cpp-sdk-core/source/utils/crypto/factory/Factories.cpp
+++ b/aws-cpp-sdk-core/source/utils/crypto/factory/Factories.cpp
@@ -755,7 +755,7 @@ std::shared_ptr<Aws::Utils::Crypto::HMAC> Aws::Utils::Crypto::CreateSha256HMACIm
return s_Sha256HMACFactory->CreateImplementation();
}
-#ifdef _WIN32
+#ifdef _MSC_VER
#pragma warning( push )
#pragma warning( disable : 4702 )
#endif
@@ -840,7 +840,7 @@ std::shared_ptr<SymmetricCipher> Aws::Utils::Crypto::CreateAES_KeyWrapImplementa
return s_AES_KeyWrapFactory->CreateImplementation(key);
}
-#ifdef _WIN32
+#ifdef _MSC_VER
#pragma warning(pop)
#endif
diff --git a/aws-cpp-sdk-s3-integration-tests/BucketAndObjectOperationTest.cpp b/aws-cpp-sdk-s3-integration-tests/BucketAndObjectOperationTest.cpp
index 0f31fcd061..586303e044 100644
--- a/aws-cpp-sdk-s3-integration-tests/BucketAndObjectOperationTest.cpp
+++ b/aws-cpp-sdk-s3-integration-tests/BucketAndObjectOperationTest.cpp
@@ -54,9 +54,9 @@
#include <aws/testing/TestingEnvironment.h>
#include <fstream>
-#ifdef _WIN32
+#ifdef _MSC_VER
#pragma warning(disable: 4127)
-#endif //_WIN32
+#endif //_MSC_VER
#include <aws/core/http/standard/StandardHttpRequest.h>
diff --git a/cmake/compiler_settings.cmake b/cmake/compiler_settings.cmake
index db054b2c1b..e1d6dce55e 100644
--- a/cmake/compiler_settings.cmake
+++ b/cmake/compiler_settings.cmake
@@ -11,6 +11,9 @@ else()
set(COMPILER_CLANG 1)
else()
set(COMPILER_GCC 1)
+ if(MINGW)
+ set(COMPILER_MINGW 1)
+ endif()
endif()
set(USE_GCC_FLAGS 1)
endif()
@@ -34,6 +37,9 @@ endfunction()
macro(set_gcc_flags)
list(APPEND AWS_COMPILER_FLAGS "-fno-exceptions" "-std=c++${CPP_STANDARD}")
+ if(COMPILER_IS_MINGW)
+ list(APPEND AWS_COMPILER_FLAGS -D__USE_MINGW_ANSI_STDIO=1)
+ endif()
if(NOT BUILD_SHARED_LIBS)
list(APPEND AWS_COMPILER_FLAGS "-fPIC")
diff --git a/testing-resources/source/platform/windows/PlatformTesting.cpp b/testing-resources/source/platform/windows/PlatformTesting.cpp
index 2b0a04c0b4..2a27710557 100644
--- a/testing-resources/source/platform/windows/PlatformTesting.cpp
+++ b/testing-resources/source/platform/windows/PlatformTesting.cpp
@@ -15,7 +15,9 @@
#include <aws/testing/platform/PlatformTesting.h>
+#ifdef _MSC_VER
#pragma warning(disable: 4996)
+#endif
#include <windows.h>
#include <aws/core/utils/memory/stl/AWSStringStream.h>

View File

@@ -9,18 +9,19 @@ index a6bf9a2..fa50e79 100644
+sys/MSYS.mk
sys/NetBSD.mk
diff --git a/mk/sys/MINGW32.mk b/mk/sys/MINGW32.mk
index 10da919..470b3b0 100644
index 10da919..9d04333 100644
--- a/mk/sys/MINGW32.mk
+++ b/mk/sys/MINGW32.mk
@@ -1,2 +1,2 @@
-# $Id: Linux.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
+# $Id: MINGW32.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
# $NetBSD: sys.mk,v 1.19.2.1 1994/07/26 19:58:31 cgd Exp $
@@ -14,5 +14,13 @@ NEED_SOLINKS=yes
@@ -14,5 +14,14 @@ NEED_SOLINKS=yes
+LD_X=
+LD_x=
+SHLIB_LD = ${CC}
+SHLIB_LDADD?= ${LDADD}
+
.SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
@@ -31,25 +32,26 @@ index 10da919..470b3b0 100644
+HOST_LIBEXT = .dll
+DSHLIBEXT = .dll
@@ -21,2 +29,5 @@ ARFLAGS= rl
@@ -21,2 +30,5 @@ ARFLAGS= rl
RANLIB= ranlib
+LD_shared= -Bshareable -shared
+LD_so= dll.${SHLIB_FULLVERSION}
+LD_solink= dll
diff --git a/mk/sys/MINGW64.mk b/mk/sys/MINGW64.mk
index 10da919..3caac1c 100644
index 10da919..793b169 100644
--- a/mk/sys/MINGW64.mk
+++ b/mk/sys/MINGW64.mk
@@ -1,2 +1,2 @@
-# $Id: Linux.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
+# $Id: MINGW64.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
# $NetBSD: sys.mk,v 1.19.2.1 1994/07/26 19:58:31 cgd Exp $
@@ -14,5 +14,13 @@ NEED_SOLINKS=yes
@@ -14,5 +14,14 @@ NEED_SOLINKS=yes
+LD_X=
+LD_x=
+SHLIB_LD = ${CC}
+SHLIB_LDADD?= ${LDADD}
+
.SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
@@ -60,25 +62,26 @@ index 10da919..3caac1c 100644
+HOST_LIBEXT = .dll
+DSHLIBEXT = .dll
@@ -21,2 +29,5 @@ ARFLAGS= rl
@@ -21,2 +30,5 @@ ARFLAGS= rl
RANLIB= ranlib
+LD_shared= -Bshareable -shared
+LD_so= dll.${SHLIB_FULLVERSION}
+LD_solink= dll
diff --git a/mk/sys/MSYS.mk b/mk/sys/MSYS.mk
index 10da919..510002f 100644
index 10da919..16b3b53 100644
--- a/mk/sys/MSYS.mk
+++ b/mk/sys/MSYS.mk
@@ -1,2 +1,2 @@
-# $Id: Linux.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
+# $Id: MSYS.mk,v 1.9 2017/05/05 18:02:16 sjg Exp $
# $NetBSD: sys.mk,v 1.19.2.1 1994/07/26 19:58:31 cgd Exp $
@@ -14,5 +14,13 @@ NEED_SOLINKS=yes
@@ -14,5 +14,14 @@ NEED_SOLINKS=yes
+LD_X=
+LD_x=
+SHLIB_LD = ${CC}
+SHLIB_LDADD?= ${LDADD}
+
.SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
@@ -89,7 +92,7 @@ index 10da919..510002f 100644
+HOST_LIBEXT = .dll
+DSHLIBEXT = .dll
@@ -21,2 +29,5 @@ ARFLAGS= rl
@@ -21,2 +30,5 @@ ARFLAGS= rl
RANLIB= ranlib
+LD_shared= -Bshareable -shared
+LD_so= dll.${SHLIB_FULLVERSION}

View File

@@ -8,7 +8,7 @@ _realname=bmake
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=20181221
pkgrel=4
pkgrel=5
pkgdesc='Portable version of the NetBSD make build tool'
arch=('any')
url='http://www.crufty.net/help/sjg/bmake.html'

View File

@@ -0,0 +1,53 @@
# Maintainer: Biswapriyo Nath <nathbappai@gmail.com>
_realname=cpputest
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=4.0
pkgrel=1
pkgdesc="Unit testing and mocking framework for C and C++ (mingw-w64)"
url="https://cpputest.github.io/"
arch=('any')
license=('BSD-3-Clause')
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja")
options=('staticlibs' 'strip')
source=("https://github.com/cpputest/cpputest/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.gz")
sha512sums=('69f39fffdcd965c871e598118db38ddb74a3e75fd7a7965f8d236029fa891f6fcb6b671147c166ad08482bbd0737537fafe90aa8439a0ab62389f19150cc39d7')
build() {
[[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST}
declare -a extra_config
if check_option "debug" "n"; then
extra_config+=("-DCMAKE_BUILD_TYPE=Release")
else
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
fi
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake \
-G Ninja \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
"${extra_config[@]}" \
-DC++11=ON \
-DTESTS=ON \
-DEXAMPLES=ON \
../${_realname}-${pkgver}
${MINGW_PREFIX}/bin/cmake --build ./
}
check() {
cd ${srcdir}/build-${MINGW_CHOST}
${MINGW_PREFIX}/bin/ctest ./ || true
}
package() {
cd ${srcdir}/build-${MINGW_CHOST}
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build ./ --target install
install -Dm644 ${srcdir}/${_realname}-${pkgver}/README.md ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/README.md
install -Dm644 ${srcdir}/${_realname}-${pkgver}/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING
}

View File

@@ -4,12 +4,12 @@ _realname=dfu-programmer
pkgbase=mingw-w64-${_realname}
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
pkgver=0.7.2
pkgrel=1
pkgrel=2
pkgdesc='Device firmware update based USB programmer for Atmel chips (mingw-w64)'
arch=('any')
license=('GPL')
url='https://github.com/dfu-programmer/dfu-programmer'
makedepends=("${MINGW_PACKAGE_PREFIX}-libusb-win32")
depends=("${MINGW_PACKAGE_PREFIX}-libusb-win32")
source=(
"https://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/${pkgver}/dfu-programmer-${pkgver}.tar.gz"
01-use-libusb-win32.patch

View File

@@ -0,0 +1,122 @@
From fcada522913e5e07efa6367eff87ace9f06d24c8 Mon Sep 17 00:00:00 2001
From: Akira TAGOH <akira@tagoh.org>
Date: Wed, 28 Aug 2019 17:46:03 +0900
Subject: [PATCH] Do not return FcFalse from FcConfigParseAndLoad*() if
complain is set to false
https://bugzilla.redhat.com/show_bug.cgi?id=1744377
---
src/fcxml.c | 8 ++++---
test/Makefile.am | 4 ++++
test/test-bz1744377.c | 51 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 60 insertions(+), 3 deletions(-)
create mode 100644 test/test-bz1744377.c
diff --git a/src/fcxml.c b/src/fcxml.c
index 2e26e77a..076fa301 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -3526,7 +3526,7 @@ _FcConfigParse (FcConfig *config,
int len;
FcStrBuf sbuf;
char buf[BUFSIZ];
- FcBool ret = FcFalse;
+ FcBool ret = FcFalse, complain_again = complain;
#ifdef _WIN32
if (!pGetSystemWindowsDirectory)
@@ -3605,7 +3605,7 @@ _FcConfigParse (FcConfig *config,
close (fd);
ret = FcConfigParseAndLoadFromMemoryInternal (config, filename, FcStrBufDoneStatic (&sbuf), complain, load);
- complain = FcFalse; /* no need to reclaim here */
+ complain_again = FcFalse; /* no need to reclaim here */
bail1:
FcStrBufDestroy (&sbuf);
bail0:
@@ -3613,7 +3613,9 @@ bail0:
FcStrFree (filename);
if (realfilename)
FcStrFree (realfilename);
- if (!ret && complain)
+ if (!complain)
+ return FcTrue;
+ if (!ret && complain_again)
{
if (name)
FcConfigMessage (0, FcSevereError, "Cannot %s config file \"%s\"", load ? "load" : "scan", name);
diff --git a/test/Makefile.am b/test/Makefile.am
index f9c21581..a9fa089a 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -131,6 +131,10 @@ TESTS += test-d1f48f11
endif
endif
+check_PROGRAMS += test-bz1744377
+test_bz1744377_LDADD = $(top_builddir)/src/libfontconfig.la
+TESTS += test-bz1744377
+
EXTRA_DIST=run-test.sh run-test-conf.sh $(LOG_COMPILER) $(TESTDATA) out.expected-long-family-names out.expected-no-long-family-names
CLEANFILES=out out1 out2 fonts.conf out.expected
diff --git a/test/test-bz1744377.c b/test/test-bz1744377.c
new file mode 100644
index 00000000..d7f10535
--- /dev/null
+++ b/test/test-bz1744377.c
@@ -0,0 +1,51 @@
+/*
+ * fontconfig/test/test-bz1744377.c
+ *
+ * Copyright © 2000 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the author(s) not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. The authors make no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+#include <fontconfig/fontconfig.h>
+
+int
+main (void)
+{
+ const FcChar8 *doc = ""
+ "<fontconfig>\n"
+ " <include ignore_missing=\"yes\">blahblahblah</include>\n"
+ "</fontconfig>\n"
+ "";
+ const FcChar8 *doc2 = ""
+ "<fontconfig>\n"
+ " <include ignore_missing=\"no\">blahblahblah</include>\n"
+ "</fontconfig>\n"
+ "";
+ FcConfig *cfg = FcConfigCreate ();
+
+ if (!FcConfigParseAndLoadFromMemory (cfg, doc, FcTrue))
+ return 1;
+ if (FcConfigParseAndLoadFromMemory (cfg, doc2, FcTrue))
+ return 1;
+ if (!FcConfigParseAndLoadFromMemory (cfg, doc2, FcFalse))
+ return 1;
+
+ FcConfigDestroy (cfg);
+
+ return 0;
+}
--
GitLab

View File

@@ -5,7 +5,7 @@ _realname=fontconfig
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.13.92
pkgrel=1
pkgrel=2
pkgdesc="A library for configuring and customizing font access (mingw-w64)"
arch=('any')
url="https://wiki.freedesktop.org/www/Software/fontconfig/"
@@ -26,13 +26,15 @@ source=("https://www.freedesktop.org/software/fontconfig/release/fontconfig-${pk
0002-fix-mkdir.mingw.patch
0004-fix-mkdtemp.mingw.patch
0005-fix-setenv.mingw.patch
0007-pkgconfig.mingw.patch)
0007-pkgconfig.mingw.patch
0008-fix-font-search.patch)
sha256sums=('506e61283878c1726550bc94f2af26168f1e9f2106eac77eaaf0b2cdfad66e4e'
'1266d4bbd8270f013fee2401c890f0251babf50a175a69d681d3a6af5003c899'
'0d950eb8a19858bff1f0b26e4a560f589e79e7eb7f22f723267748dfe55e0b63'
'57ff8420dbf62873b6fcb38b52fb7b37e0e278425a9125e15dccba54668c8ab9'
'552b54010f9fe4097f332cf2397bbd3e78489542d3bbf07792ed1cfe9381796e'
'af373531873da46d0356305da5444c1ec74f443cd2635ea2db6b7dadd1561f5b')
'af373531873da46d0356305da5444c1ec74f443cd2635ea2db6b7dadd1561f5b'
'557bfa2c83746da9d3d2be956c3c6906e80625c324d64eb7504d8c5164c2eca3')
prepare() {
cd "${srcdir}"/${_realname}-${pkgver}
@@ -42,6 +44,8 @@ prepare() {
patch -p1 -i ${srcdir}/0004-fix-mkdtemp.mingw.patch
patch -p1 -i ${srcdir}/0005-fix-setenv.mingw.patch
patch -p1 -i ${srcdir}/0007-pkgconfig.mingw.patch
# https://github.com/msys2/MINGW-packages/issues/6661#issuecomment-674536893
patch -p1 -i ${srcdir}/0008-fix-font-search.patch
autoreconf -fiv
}

View File

@@ -6,11 +6,11 @@
_realname=glib2
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.64.3
pkgver=2.64.4
pkgrel=1
url="https://www.gtk.org/"
arch=('any')
pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)"
pkgdesc="Common C routines used by GTK+ 3 and other libs (mingw-w64)"
license=(LGPL2)
install=glib2-${CARCH}.install
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
@@ -31,7 +31,7 @@ source=("https://download.gnome.org/sources/glib/${pkgver%.*}/glib-${pkgver}.tar
gio-querymodules.hook.in
0002-disable_glib_compile_schemas_warning.patch
pyscript2exe.py)
sha256sums=('fe9cbc97925d14c804935f067a3ad77ef55c0bbe9befe68962318f5a767ceb22'
sha256sums=('f7e0b325b272281f0462e0f7fff25a833820cac19911ff677251daf6d87bce50'
'51d02360a1ee978fd45e77b84bca9cfbcf080d91986b5c0efe0732779c6a54ec'
'1e3ac7cfd4644f3849704e54fcfbb12d15440a33cd5c2d014d4a479c6aaab185'
'0f44135a139e3951c4b5fa7d4628d75226e0666d891faf524777e1d1ec3b440b'

View File

@@ -4,7 +4,7 @@
_realname=harfbuzz
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.7.0
pkgver=2.7.1
pkgrel=1
pkgdesc="OpenType text shaping engine (mingw-w64)"
arch=('any')
@@ -29,7 +29,7 @@ options=('strip' 'staticlibs')
optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu support"
"${MINGW_PACKAGE_PREFIX}-cairo: hb-view program")
source=("https://github.com/harfbuzz/harfbuzz/archive/${pkgver}.tar.gz")
sha256sums=('4dba05de1fd44705f54c40d801e0e3d4833555d004cb611cc18675173feae75b')
sha256sums=('431c856ff18eeca89b2a36b58f2c2d56273cd522c34c0ffbc9dd6f7da4b9bd08')
noextract=("${pkgver}.tar.gz")
prepare() {

View File

@@ -1,9 +1,10 @@
# Maintainer: Øystein Krog <oystein.krog@gmail.com>
# Maintainer: Tom Schoonjans <Tom.Schoonjans@rfi.ac.uk>
_realname=hub
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=2.2.1
pkgver=2.14.2
pkgrel=1
pkgdesc="hub introduces git to GitHub (mingw-w64)"
arch=('any')
@@ -15,22 +16,20 @@ options=('!strip')
depends=('git')
makedepends=("git" "${MINGW_PACKAGE_PREFIX}-go")
source=(${_realname}-${pkgver}.tar.gz::https://github.com/github/${_realname}/archive/v${pkgver}.tar.gz)
sha256sums=('9350aba6a8e3da9d26b7258a4020bf84491af69595f7484f922d75fc8b86dc10')
sha256sums=('e19e0fdfd1c69c401e1c24dd2d4ecf3fd9044aa4bd3f8d6fd942ed1b2b2ad21a')
build() {
cd "${srcdir}/${_realname}-${pkgver}"
GOROOT=${MINGW_PREFIX}/lib/go ./script/build
gzip --best -c man/${_realname}.1> ${_realname}.1.gz
export GOROOT=${MINGW_PREFIX}/lib/go
make
}
package() {
cd "${srcdir}/${_realname}-${pkgver}"
install -Dm755 "${_realname}" "${pkgdir}${MINGW_PREFIX}/bin/${_realname}"
make install prefix=${pkgdir}${MINGW_PREFIX}
install -Dm644 "LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
install -Dm644 "man/${_realname}.1" "${pkgdir}${MINGWPREFIX}/share/man/man1/${_realname}.1"
install -Dm644 "etc/hub.bash_completion.sh" "${pkgdir}/usr/share/bash-completion/completions/hub"
install -Dm644 "etc/hub.zsh_completion" "${pkgdir}/usr/share/zsh/site-functions/_hub"
}

View File

@@ -1,9 +0,0 @@
diff --git a/src/util/windows.cpp b/src/util/windows.cpp
index 9a978d7..1bebe9c 100644
--- a/src/util/windows.cpp
+++ b/src/util/windows.cpp
@@ -523,3 +523,3 @@ int main() {
// Tell boost::filesystem to interpret our path strings as UTF-8
- boost::filesystem::path::imbue(std::locale(std::locale(), &util::codecvt));
+ boost::filesystem::path::imbue(std::locale(std::locale(), new std::codecvt_utf8_utf16<wchar_t>()));

View File

@@ -3,8 +3,8 @@
_realname=innoextract
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.8
pkgrel=2
pkgver=1.9
pkgrel=1
pkgdesc="A tool to extract installers created by Inno Setup (mingw-w64)"
arch=('any')
url="https://constexpr.org/innoextract/"
@@ -19,16 +19,10 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-zlib")
options=('staticlibs' '!strip')
source=("https://constexpr.org/innoextract/files/${_realname}-${pkgver}.tar.gz"
0001-fix-segfault-windows.patch
)
sha256sums=('5e78f6295119eeda08a54dcac75306a1a4a40d0cb812ff3cd405e9862c285269'
'BFBDF47059B1EFDD74F7847679B0ED9B61E00E8A6236BA518C050B43C4D09D2A'
)
prepare() {
cd "${srcdir}/${_realname}-${pkgver}"
patch -p1 -l -i "${srcdir}"/0001-fix-segfault-windows.patch # see https://github.com/dscharrer/innoextract/pull/114 for details
}
sha256sums=('6344A69FC1ED847D4ED3E272E0DA5998948C6B828CB7AF39C6321ABA6CF88126'
)
build() {
[[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}

View File

@@ -1,44 +0,0 @@
diff --git a/src/hdy-swipe-group.c b/src/hdy-swipe-group.c
index 18b167ab5a260093bc0e6cd8fc4deef86211cb0f..2779a312e066f698635f151a8df6c57b6ac8b125 100644
--- a/src/hdy-swipe-group.c
+++ b/src/hdy-swipe-group.c
@@ -104,7 +104,7 @@ hdy_swipe_group_new (void)
static void
child_switched_cb (HdySwipeGroup *self,
- uint index,
+ guint index,
gint64 duration,
HdySwipeable *swipeable)
{
diff --git a/tests/test-carousel.c b/tests/test-carousel.c
index 538ca6e1a8f9589ebf10d0099bfdb56349f0a357..25ccb3e68700612dc8ed5f0c3e4debb6e8cbdc8e 100644
--- a/tests/test-carousel.c
+++ b/tests/test-carousel.c
@@ -158,7 +158,7 @@ static void
test_hdy_carousel_indicator_spacing (void)
{
HdyCarousel *carousel = HDY_CAROUSEL (hdy_carousel_new ());
- uint spacing;
+ guint spacing;
notified = 0;
g_signal_connect (carousel, "notify::indicator-spacing", G_CALLBACK (notify_cb), NULL);
@@ -210,7 +210,7 @@ static void
test_hdy_carousel_spacing (void)
{
HdyCarousel *carousel = HDY_CAROUSEL (hdy_carousel_new ());
- uint spacing;
+ guint spacing;
notified = 0;
g_signal_connect (carousel, "notify::spacing", G_CALLBACK (notify_cb), NULL);
@@ -236,7 +236,7 @@ static void
test_hdy_carousel_animation_duration (void)
{
HdyCarousel *carousel = HDY_CAROUSEL (hdy_carousel_new ());
- uint duration;
+ guint duration;
notified = 0;
g_signal_connect (carousel, "notify::animation-duration", G_CALLBACK (notify_cb), NULL);

View File

@@ -3,7 +3,7 @@
_realname=libhandy
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.84.0
pkgver=0.90.0
pkgrel=1
pkgdesc="A library full of GTK+ widgets for mobile phones (mingw-w64)"
url="https://gitlab.gnome.org/GNOME/libhandy"
@@ -15,14 +15,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-meson"
"${MINGW_PACKAGE_PREFIX}-vala"
"${MINGW_PACKAGE_PREFIX}-gobject-introspection")
options=('strip' 'staticlibs' '!debug')
source=("http://ftp.gnome.org/pub/GNOME/sources/libhandy/${pkgver:0:4}/libhandy-${pkgver}.tar.xz"
001-fix-types.patch)
sha256sums=('c05c539f96f91cdf29a07320576c74909fcf77d216d7328e602fe16599f561aa'
'0d7833c87deaf5b25f6e1205fe54c1814a1cf91ab19f89b3cef1b96bac401d27')
source=("https://download.gnome.org/sources/libhandy/${pkgver:0:4}/libhandy-${pkgver}.tar.xz")
sha256sums=('6ab0869a3aa483298ea20ec89d4c14c38ba4de416b33181d21e15a6039df5985')
prepare() {
cd libhandy-${pkgver}
patch -p1 -i ${srcdir}/001-fix-types.patch
}
build() {

View File

@@ -3,7 +3,7 @@
_realname=librsvg
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.48.7
pkgver=2.48.8
pkgrel=1
pkgdesc="SVG rendering library (mingw-w64)"
arch=('any')
@@ -23,7 +23,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-gtk3: for rsvg-view-3")
options=('staticlibs' 'strip')
source=("https://download.gnome.org/sources/librsvg/${pkgver%.*}/${_realname}-${pkgver}.tar.xz"
"0005-hack-unixy-paths.patch")
sha256sums=('35de5d93e262fcd85fa4529cee147687d21c6e092f223c293921eaaf57e2fec0'
sha256sums=('f480a325bbdf26d1874eb6fb330ebc5920ba64e3e08de61931bb4506dfef2692'
'b23b094c0cb65fcbbbb952350448de6f3430b30f273e05acdbf7a56d634212dc')
prepare() {

View File

@@ -3,7 +3,7 @@
_realname=meson
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.54.3
pkgver=0.55.1
pkgrel=1
pkgdesc="High-productivity build system (mingw-w64)"
arch=('any')
@@ -18,7 +18,7 @@ source=("https://github.com/mesonbuild/${_realname}/releases/download/${pkgver}/
'0002-Default-to-sys.prefix-as-the-default-prefix.patch'
'0003-Strip-the-prefix-from-all-paths-when-installing-with.patch'
'install-man.patch')
sha256sums=('f2bdf4cf0694e696b48261cdd14380fb1d0fe33d24744d8b2df0c12f33ebb662'
sha256sums=('3b5741f884e04928bdfa1947467ff06afa6c98e623c25cef75adf71ca39ce080'
'5805aed0a117536eb16dd8eef978c6be57c2471b655ede63e25517c28b4f4cf0'
'363182db7e7059526353278966aa4704e8a26cbaf7c3b7dc5d6e4f01692a40e6'
'2093c617cf3146a4cea601e7c73400d8ec5fd52ac5cf642c4f5af2d6493b1cb1'

View File

@@ -4,7 +4,7 @@
_realname=mpfr
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
_pkgver=4.0.2
_pkgver=4.1.0
_patchlevel=
pkgver=${_pkgver}
if [ -n "${_patchlevel}" ]; then
@@ -21,7 +21,7 @@ source=(https://ftp.gnu.org/gnu/mpfr/${_realname}-${_pkgver}.tar.xz{,.sig}
#https://www.mpfr.org/mpfr-current/${_realname}-${_pkgver}.tar.xz{,.asc}
#mpfr-${_pkgver}-${_patchlevel}.patch
)
sha256sums=('1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a'
sha256sums=('0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f'
'SKIP')
validpgpkeys=('07F3DBBECC1A39605078094D980C197698C3739D')

View File

@@ -6,7 +6,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-python-${_realname}")
provides=("${MINGW_PACKAGE_PREFIX}-python3-${_realname}")
conflicts=("${MINGW_PACKAGE_PREFIX}-python3-${_realname}")
replaces=("${MINGW_PACKAGE_PREFIX}-python3-${_realname}")
pkgver=5.0.1
pkgver=5.2.1
pkgrel=1
pkgdesc="Code coverage measurement for Python (mingw-w64)"
arch=('any')
@@ -16,16 +16,16 @@ depends=("${MINGW_PACKAGE_PREFIX}-python")
makedepends=("${MINGW_PACKAGE_PREFIX}-python-setuptools")
install=${_realname}3-${CARCH}.install
source=("${_realname}-${pkgver}.tar.gz::https://github.com/nedbat/coveragepy/archive/coverage-${pkgver}.tar.gz")
sha256sums=('ea6d1b82bc758ca33483685c821ea8a75a0da63060d3a11ad12755f1965cf2dd')
sha256sums=('d4b1405f26b70021b28c50823e9345f203280ab104e65c01b52fe57b2dd96455')
prepare() {
prepare() {
cd "${srcdir}"
rm -rf python-build-${CARCH} | true
cp -r "coveragepy-${_realname}-${pkgver}" "python-build-${CARCH}"
}
build() {
msg "Python build for ${CARCH}"
msg "Python build for ${CARCH}"
cd "${srcdir}/python-build-${CARCH}"
${MINGW_PREFIX}/bin/python setup.py build
}

View File

@@ -6,7 +6,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-python-${_realname}")
provides=("${MINGW_PACKAGE_PREFIX}-python3-${_realname}")
conflicts=("${MINGW_PACKAGE_PREFIX}-python3-${_realname}")
replaces=("${MINGW_PACKAGE_PREFIX}-python3-${_realname}")
pkgver=1.14.0
pkgver=1.15.0
pkgrel=1
pkgdesc="Python 2 and 3 compatibility utilities (mingw-w64)"
arch=('any')
@@ -14,7 +14,7 @@ url="https://pypi.python.org/pypi/six/"
license=('MIT')
depends=("${MINGW_PACKAGE_PREFIX}-python")
source=(https://pypi.io/packages/source/${_realname:0:1}/${_realname}/${_realname}-${pkgver}.tar.gz)
sha256sums=('236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a')
sha256sums=('30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259')
prepare() {
cd "${srcdir}"
@@ -39,4 +39,4 @@ package() {
--root "${pkgdir}" --optimize=1 --skip-build
install -Dm644 "${srcdir}/six-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python-${_realname}/LICENSE"
}
}

View File

@@ -3,10 +3,10 @@
_realname=qemu
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
_base_ver=5.0.0
_base_ver=5.1.0
_rc=
pkgver=${_base_ver}${_rc//-/.}
pkgrel=3
pkgrel=1
pkgdesc="A generic and open source processor emulator (mingw-w64)"
arch=('any')
license=('GPL2' 'LGPL2')
@@ -36,17 +36,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-capstone"
"${MINGW_PACKAGE_PREFIX}-usbredir"
"${MINGW_PACKAGE_PREFIX}-zstd")
source=(https://download.qemu.org/${_realname}-${pkgver}.tar.xz{,.sig})
sha256sums=('2f13a92a0fa5c8b69ff0796b59b86b080bbb92ebad5d301a7724dd06b5e78cb6'
sha256sums=('c9174eb5933d9eb5e61f541cd6d1184cd3118dfe4c5c4955bc1bdc4d390fa4e5'
'SKIP')
validpgpkeys=('CEACC9E15534EBABB82D3FA03353C9CEF108B584') # Michael Roth <flukshun@gmail.com>
noextract=(${_realname}-${pkgver}.tar.xz)
case ${MINGW_CHOST} in
x86_64*)
_whpx=--enable-whpx
;;
esac
prepare() {
[[ -d "${srcdir}"/${_realname}-${pkgver} ]] && rm -rf "${srcdir}"/${_realname}-${pkgver}
tar -xJf ${srcdir}/${_realname}-${pkgver}.tar.xz -C ${srcdir} || true
@@ -57,8 +51,15 @@ prepare() {
build() {
LDFLAGS+=" -fstack-protector"
cd "${srcdir}/${_realname}-${pkgver}"
./configure \
local -a _extra_config
if [[ "$CARCH" = 'x86_64' ]]; then
_extra_config+=("--enable-whpx")
fi
[[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
../${_realname}-${pkgver}/configure \
--disable-werror \
--disable-kvm \
--disable-spice \
@@ -74,7 +75,7 @@ build() {
--enable-gtk \
--enable-sdl \
--enable-zstd \
${_whpx} \
"${_extra_config[@]}" \
--prefix=${MINGW_PREFIX} \
--bindir=${MINGW_PREFIX}/bin \
--datadir=${MINGW_PREFIX}/bin \
@@ -82,10 +83,11 @@ build() {
--python=${MINGW_PREFIX}/bin/python \
--mandir=${MINGW_PREFIX}/share/qemu \
--docdir=${MINGW_PREFIX}/share/qemu
make
}
package() {
cd "${srcdir}/${_realname}-${pkgver}"
cd "${srcdir}"/build-${CARCH}
make DESTDIR="${pkgdir}/" install
}

47
mingw-w64-scour/PKGBUILD Normal file
View File

@@ -0,0 +1,47 @@
# Maintainer: Biswapriyo Nath <nathbappai@gmail.com>
_realname=scour
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.38
pkgrel=1
pkgdesc="An SVG scrubber (mingw-w64)"
arch=('any')
url="https://github.com/scour-project/scour"
license=('Apache')
depends=("${MINGW_PACKAGE_PREFIX}-python"
"${MINGW_PACKAGE_PREFIX}-python-setuptools"
"${MINGW_PACKAGE_PREFIX}-python-six")
source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/scour-project/scour/archive/v${pkgver}.tar.gz")
sha256sums=('565d52331b40793f038a2725fcc3ee53539d9ef287d582b7c305789cb1d503eb')
prepare() {
cd "${srcdir}"
cp -r ${_realname}-${pkgver} python-build-${CARCH}
}
build() {
cd "${srcdir}/python-build-${CARCH}"
${MINGW_PREFIX}/bin/python setup.py build
}
check() {
cd "${srcdir}/python-build-${CARCH}"
${MINGW_PREFIX}/bin/python setup.py check
}
package() {
cd "${srcdir}/python-build-${CARCH}"
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
${MINGW_PREFIX}/bin/python setup.py install --prefix=${MINGW_PREFIX} \
--root "${pkgdir}" --optimize=1 --skip-build
install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/python-${_realname}/LICENSE"
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
# fix python command in files
for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do
sed -e "s|/usr/bin/env |${MINGW_PREFIX}|g" \
-e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${_f}
done
}

View File

@@ -3,7 +3,7 @@
_realname=vala
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.48.8
pkgver=0.48.9
pkgrel=1
pkgdesc="Compiler for the GObject type system (mingw-w64)"
arch=('any')
@@ -19,7 +19,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-glib2"
source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz
001-change-pkg-config-invocations.mingw.patch
002-use_time_s_functions_on_windows.mingw.patch)
sha256sums=('c83a9b7292627bc259dae7cd414c813a48f285b4b2f4b574fa28e6af9a582ab4'
sha256sums=('9cea16d3bb3daddbfe0556b99fbfa08146230db7651e1e674cd08b4df5cefea9'
'c588a3a69097aae30ada1d543001d5029865b1dd1f46132d9e60d12e1833b325'
'1309ae50867b81ea5d170487b36443a41c8dfee202213198c980a133300d6f9a')

View File

@@ -5,7 +5,7 @@ _realname=Vulkan-ValidationLayers
pkgbase=mingw-w64-vulkan-validation-layers
pkgname=("${MINGW_PACKAGE_PREFIX}-vulkan-validation-layers")
pkgver=1.2.148
pkgrel=1
pkgrel=2
pkgdesc='Vulkan Validation Layers (mingw-w64)'
arch=('any')
url="https://www.khronos.org/vulkan/"
@@ -55,7 +55,8 @@ build() {
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DGLSLANG_INSTALL_DIR=${MINGW_PREFIX} \
-DSPIRV_HEADERS_INSTALL_DIR=${MINGW_PREFIX} \
-DBUILD_LAYER_SUPPORT_FILES=OFF \
-DBUILD_LAYER_SUPPORT_FILES=ON \
-DCMAKE_INSTALL_INCLUDEDIR=include/vulkan \
-DBUILD_TESTS=OFF \
../${_realname}-${pkgver}
@@ -66,5 +67,6 @@ package() {
cd ${srcdir}/build-${CARCH}
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build ./ --target install
install -Dm644 ${srcdir}/${_realname}-${pkgver}/docs/* -t ${pkgdir}${MINGW_PREFIX}/share/doc/vulkan-validation-layers/
install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE.TXT ${pkgdir}${MINGW_PREFIX}/share/licenses/vulkan-validation-layers/LICENSE
}