Skip to content

Commit 49e0595

Browse files
committed
build.yml: Add Windows/MinGW automatic builds
1 parent ef766fc commit 49e0595

2 files changed

Lines changed: 93 additions & 0 deletions

File tree

‎.github/workflows/build.yml‎

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,92 @@ jobs:
4343
run: ./pixiewps -e d0141b15656e96b85fcead2e8e76330d2b1ac1576bb026e7a328c0e1baf8cf91664371174c08ee12ec92b0519c54879f21255be5a8770e1fa1880470ef423c90e34d7847a6fcb4924563d1af1db0c481ead9852c519bf1dd429c163951cf69181b132aea2a3684caf35bc54aca1b20c88bb3b7339ff7d56e09139d77f0ac58079097938251dbbe75e86715cc6b7c0ca945fa8dd8d661beb73b414032798dadee32b5dd61bf105f18d89217760b75c5d966a5a490472ceba9e3b4224f3d89fb2b -r ce733463b55d3c410e59949d94f0b95fff816dc2cbd27f0832f010121143f37febe96a22e7b43c1a4cce45bbcdfe48a55bcace804c0643286208de9f620c9f8df6b91d1f1ad7eb9398b49e28ccfa1349dfcb11943a6d6f40fc52c76bedb2fecc516906a4c4fff0c10ae337ef9f82e9aa4b695b3707256b4e13ceea0e19b29e2b35bdfa8e09bd60f2b3ff78e9b3bd2a0a7d97b633a0046134bfc03c18aada6a002c60709a56191db258025c9249bb0668bfe45078f4aaa32e937fb88a802850bc -s 2fa02bfdbe2fc4010c6c655870cc8fabb651f930401c61bb23c28a04597f163f -z 2fa02bfdbe2fc4010c6c655870cc8fabb651f930401c61bb23c28a04597f163f -a 06c01b8d83a4b25ea741980e912f59f3687d22d277526f7f12774bdecdbb16e0 -n 6dda2c0103bb28624169dcac0b4d3d20 --start 01/1970 --end 02/1970
4444
- name: Test Mode 3 (RTL819x) with PSK
4545
run: ./pixiewps -b 00c0ca78b137 -n 2030c1b46c1594743e0b78e65dac2e61 -e d0141b15656e96b85fcead2e8e76330d2b1ac1576bb026e7a328c0e1baf8cf91664371174c08ee12ec92b0519c54879f21255be5a8770e1fa1880470ef423c90e34d7847a6fcb4924563d1af1db0c481ead9852c519bf1dd429c163951cf69181b132aea2a3684caf35bc54aca1b20c88bb3b7339ff7d56e09139d77f0ac58079097938251dbbe75e86715cc6b7c0ca945fa8dd8d661beb73b414032798dadee32b5dd61bf105f18d89217760b75c5d966a5a490472ceba9e3b4224f3d89fb2b -m 889aa5b151727a6dc0bad76e99a9f01c -r a5bf833aed90fff9076a0c76ebe4c1a5a633165409d4cc43c6e2934658561526c9e6d5fe8e2dbfba8c149fc9a408cef5a00941a33810d70db2ceeaf47e87f96d3b5ecde112e329544cd12e2c46213f6352e67f35131c000b70d9efc9ee2d7c379128a39d53cac953c92ab0868e6d3ad1add2ac09caf2ee33f05d20ae066fbfa4322e3bee1c538c7cde23aa1ba9a0ecac114ffd6d9cbfc68d530e9d0fd78ac1254d3b9cd691ce432bcd4dcccac82a806c53ed45340005e99502c55a9ca8757745 -7 0dd8fca1209db2c06462cd0f46626931ce4c35ffe2db5f0b2647cf749aa847f12cb81f3f7d66987578e4d624bbc7d81603054e8ce4b747fef55036e68d6f173b6bfa2f4c62860030ce0639eec68c305a7c42498de8b97503f6d7b666499982b25ef128b2b40c2b8bd6f45ead0244f934 --mode 3 -5 0dd8fca1209db2c06462cd0f46626931fe3237b0c0541cee7ff160e3c22c1efa187f101b8acaa0ceee90723ed1469c7afc7cf2b7533333c694447a4241a16f3a -s 285e61797f46be06962777278c541f8dbe00dbe2859a9b66e94ef893f096e33e -z 45755e432b1833dc6e0e7ea522ac0e7dff0af4524d570430ca2f50026645c9cf -v 3
46+
47+
mingw:
48+
49+
runs-on: windows-latest
50+
strategy:
51+
matrix:
52+
type: [debug, release]
53+
build: [normal, openssl]
54+
55+
steps:
56+
- uses: actions/checkout@v7
57+
- name: Configure problem matchers
58+
run: echo ::add-matcher::.github/workflows/problem-matcher.json
59+
- name: Setup MSYS2
60+
uses: msys2/setup-msys2@v2
61+
with:
62+
msystem: UCRT64
63+
update: true
64+
install: >-
65+
mingw-w64-ucrt-x86_64-gcc
66+
mingw-w64-ucrt-x86_64-make
67+
mingw-w64-ucrt-x86_64-ntldd
68+
- name: Install OpenSSL package
69+
if: ${{ matrix.build == 'openssl' }}
70+
shell: msys2 {0}
71+
run: pacman -S --noconfirm mingw-w64-ucrt-x86_64-openssl
72+
- name: make
73+
shell: msys2 {0}
74+
run: |
75+
export PARAMS
76+
if [[ ${{ matrix.build }} == "openssl" ]]; then
77+
export PARAMS="$PARAMS OPENSSL=1"
78+
fi
79+
if [[ ${{ matrix.type }} == "debug" ]]; then
80+
export PARAMS="$PARAMS CFLAGS=-DDEBUG=1"
81+
fi
82+
mingw32-make $PARAMS
83+
#- name: Test help (exits with code 3)
84+
# run: ./pixiewps
85+
- name: Test Mode 1 (RT/MT/CL) with E-S1/E-S2 = 0
86+
run: ./pixiewps -e d438910d4e6e15fe70f097a8702ab894f57574bf64199f92829be02cc0a37548088f630a82370cb79542cf55caa5f0f76cb2c75f0e231844f42d00f1dad4942356c72cb0f687c777d0cc1135cfb74fbc448dca358a783d997f2bcf4421d8e20f3c7da472c8036f772ae9fac1e9a82c7465995ae0a526d9235e4eec5a0707ab80db3f5f187ffafaf15774b28da997a6c60aa5e0ec93092367f63eec1f5532a45d738fab9174cf1d798512c181f5eaa6689d8ec7c6be01dcd9f868801155d7446a -r bcad542f88447c1269ef34314a171c92b1d7064c73be9fd3ed87637410460f468c36b5d4a0baaf859cb23042d75943755ad77996fbee7b66dbb7a8f9229ca5d3b8e7c0c45c58341f56a81a41a8d2e8f63ec93a93d99b595ca8e078846cfc05e876a3e63b33944aa9ff50fb60fa973b6dcc04f15e3624a9067af86b00e9719d89be9cb29c1fca6dd64dab463db3111f8d40f7c8a43948c5ca1bf630957dd96841ef0a37b24a37e4a4b0dd7ec1af3e66eabf160a7a8a050001a42977a9d481d40e -s 905ff57d93e5c43c620d2665dd5957d5babaf1b73091727c549438081e133538 -z b02b075028e76e5ffa271b31928543cbc56aec73e227c3b980ec5bed88f01eec -a 7fde11b9691cde264a21a46feb3db8aaaad730090932b824439be09178e76f2c -n 00000000000000000000000000000000
87+
- name: Test Mode 1 (RT/MT/CL) with backward derivation of E-S1/E-S2
88+
run: ./pixiewps -e 49e6e811beefdf1b3fc7cdd768d9bab49be50f7ed65fab91423134f68a8f44b32f4c7b681f3ce040555b80f4cdf8da0abcc6ff30d72ff17fcaf1221bdf3a0e705999db64113035cf9e8fdcf216aee2502d737b326990e71995c205bee65f969cb5c5ea7b7666c86fe0e316b581362bbb65a9f3258a7c540149bbbb7b7e69c0db67b7bf5a9cef873712de6743ce0c0defca49276286ec19ffcac2bcd8f428604daa70324b7dc4143ea8e343c512b703dc1e5a537b6d61da3d64c0a3d55596bc74 -r 62b7a08dabc57e9e91a28bb467c9506ceea07edc17676e587500caa7430e25535a792058392858672da1742dc20a06894faf1dde5f761c4567b034170abcd440f233ce1d40d1a1e8e34f805689d11b320f641c106d498f7d03800661dcd5856652f49dc2a6c12640da0f07e97a57f439afb30d32f1fca9050864b72eee019330dbe8a35e50777bbba4cddee292182cc771966cb650348f3cd6825f108a151beff78833d83212c3597d481ff531646cb7c24a412883879af49ab81ab9ae2f9ee5 -s f2647f4fbe10999a008ebe5b1471f96bb47e3e32e8587ab86dd4fc1e5628fde4 -z 47106d601655c988de6642e0e4e09e44e06ace00405dacde511e3c45ef39d460 -a cdf35ca5579893f165aa4d85b86a9258004e4c71010e5b9ef02d27c117b89779 -n 7469956c8526be3e1e456c2dd643b7c7
89+
- name: Test Mode 1 (RT/MT/CL) with forward derivation of E-S1/E-S2
90+
run: ./pixiewps -e 6dcba3993924bd41a65d726e1546cb8dea85082d55fde13a8a71968a4c8a1ce263350b606e40569e09d7e2987baca27a791c77a86b66d1c9e545578dec2fcfccfb110953948e25f346ba30e82de151de80008aa6934d08a9c57905ecf9f21eedf3dfff00485f34492e9a1465a5f013369f9bf1994227c7e55de247fbd202a3611212f700d4a30da90f4b02f8ca29c95bdf806fad266b59ad6233b891b4f98e8171dc73e4f0b9426e1a71d3ce56c1ec9455445d23516ed4104b0a7fd65c070083 -r 0b00c2edbe75a1ce548b84593fe02450577bb37b84e7d7592a9fa6ea687e3f0fa21395849ff26bf0eba7364401d76d58c5f2a192451637e3feecb95e227b3fd088763b44991e3a64d6c2fb542259e3de1d26c75f57366f8e9f5ef7cd9aee38eeb10004e84c03f45a2a607351ec4827084586bffbc3e71b2e26894c6427e15901698b44c2484fa05ae5510f8cbcc962b9f2a76c78935690a1e46170863a10b0442708faa830deab22e07aa78dda842971188811280815f88dcde14ebfd774fe77 -s f58777a6db5c1e1408031a80be21825667152dea3e690c16690274f5370743d7 -z fa645528f218a9b2203a862b8e94dec9165f3f8bf104df8edfe4515c59cf7ed5 -a d151c38438f78e9da274a7ad0d5928f0cb644acfec86bfec1e864b549fecb203 -n a2aa8d4613b890dd7340fc774b106fce
91+
- name: Test Mode 2 (eCos simple)
92+
run: ./pixiewps -e 1c4f5ba62986e99743258851f251bcd5187e91abe587271370af61890feb68913f1a115ec429097d374eb426ba49c19c8148c1e22c0953cd699479093511afe8bd2b2d8eedfe3b89f7bbff5ea916e47954047478b49eedbaa7efc880f4df06560bb5b4f77a64dd91847bdb7fa3f4f8a9b0225bb24d6d668794dfd0e1f909341943fa42724bac44783dba6bccc6a3760d6effc97b5b2d556d1325f5955abbc5bf7818fc86540a48e305bc684545f9d317fd9e96f4bb764fe53bbeaf4242f91bd0 -r 5eaacf4eb85f3af50f1ed7fb7283cf0da1cb48e88c07a9cbd67a4b2d4cb8275eb37fee8d2c87e414c0f4fdad8d02248690e169290cf3a0d6d9d146e16f646e6bf95eeb85c50ddc607bfdf11b9844e1b61a2defc9c5954e3d0f1decf65b51357d98afb0ec38a99e0fd657a7c35c75fa886cf30d708cde2b9e96a6c104446edb63f9c3cb8ba967fe96c9ce6236bc2f40ab1d9f47231b0be5d671febefb14552f38e946e8dbf317cd2d319d325a1e4438762039ac8b609b2883c5b6750be64d27a5 -a 77bfe4d37b88567185a1169d57d8378a7f889fb912a51ec8ca8e2f74f208c3bd -s 954f5fd37b4ca008fa1a1cbe6432a3a591a5d9d7019aebb3084a2c7f7fd6ad82 -z ff5e9d895b066ac69f5d90e7c1702c828d4606afcd87a7f2182c487f72ee44de -n 9575c2d6b158ed78f250b094107affbd
93+
- name: Test Mode 3 (RTL819x) with E-S1/E-S2 = E-Nonce
94+
run: ./pixiewps -e d0141b15656e96b85fcead2e8e76330d2b1ac1576bb026e7a328c0e1baf8cf91664371174c08ee12ec92b0519c54879f21255be5a8770e1fa1880470ef423c90e34d7847a6fcb4924563d1af1db0c481ead9852c519bf1dd429c163951cf69181b132aea2a3684caf35bc54aca1b20c88bb3b7339ff7d56e09139d77f0ac58079097938251dbbe75e86715cc6b7c0ca945fa8dd8d661beb73b414032798dadee32b5dd61bf105f18d89217760b75c5d966a5a490472ceba9e3b4224f3d89fb2b -r e3a745c995c01b94906d0e184c779b6cd58ad722a0c4b59b4d07cf6c112ca518f7425dbf5536923db7e45410bf54317179f0daf827a1e9d71ec6f263ef3e3f79be1d433d15abc8b09ddeaf8bc1dc3d2ebcaf24184a1312c9e9bdc5e55208894f6d33b5831e1ca5eeed5ca77a948d1ac537bfe0b79859374fafc0e2c84b7928f432d1d310734d2eb3f1eab6d182cd527750d0d47d2f8fc440dc19c17e9c0d4020ddab782da9497c50136d834f0de8bdaa1d4153b512d5bd05886cc073906ab7c5 -s cd0c4cb9ebaaaff93c5fa14502e0af2d333593312670720c07d592d824b20857 -z 44b8c041ef510103b4e6ddae2971df293c3651306666d116b2ed6c05fc772489 -a 360c19bdfdc0b8ccb0e7a646c5bf60a2b3d1cc99a012459c056cf81ecc15357d -n 4c51caa463fa77410a44ec6b6d27a474
95+
- name: Test Mode 3 (RTL819x) with time-derived E-S1/E-S2
96+
run: ./pixiewps -e d0141b15656e96b85fcead2e8e76330d2b1ac1576bb026e7a328c0e1baf8cf91664371174c08ee12ec92b0519c54879f21255be5a8770e1fa1880470ef423c90e34d7847a6fcb4924563d1af1db0c481ead9852c519bf1dd429c163951cf69181b132aea2a3684caf35bc54aca1b20c88bb3b7339ff7d56e09139d77f0ac58079097938251dbbe75e86715cc6b7c0ca945fa8dd8d661beb73b414032798dadee32b5dd61bf105f18d89217760b75c5d966a5a490472ceba9e3b4224f3d89fb2b -r ce733463b55d3c410e59949d94f0b95fff816dc2cbd27f0832f010121143f37febe96a22e7b43c1a4cce45bbcdfe48a55bcace804c0643286208de9f620c9f8df6b91d1f1ad7eb9398b49e28ccfa1349dfcb11943a6d6f40fc52c76bedb2fecc516906a4c4fff0c10ae337ef9f82e9aa4b695b3707256b4e13ceea0e19b29e2b35bdfa8e09bd60f2b3ff78e9b3bd2a0a7d97b633a0046134bfc03c18aada6a002c60709a56191db258025c9249bb0668bfe45078f4aaa32e937fb88a802850bc -s 2fa02bfdbe2fc4010c6c655870cc8fabb651f930401c61bb23c28a04597f163f -z 2fa02bfdbe2fc4010c6c655870cc8fabb651f930401c61bb23c28a04597f163f -a 06c01b8d83a4b25ea741980e912f59f3687d22d277526f7f12774bdecdbb16e0 -n 6dda2c0103bb28624169dcac0b4d3d20 --start 01/1970 --end 02/1970
97+
- name: Test Mode 3 (RTL819x) with PSK
98+
run: ./pixiewps -b 00c0ca78b137 -n 2030c1b46c1594743e0b78e65dac2e61 -e d0141b15656e96b85fcead2e8e76330d2b1ac1576bb026e7a328c0e1baf8cf91664371174c08ee12ec92b0519c54879f21255be5a8770e1fa1880470ef423c90e34d7847a6fcb4924563d1af1db0c481ead9852c519bf1dd429c163951cf69181b132aea2a3684caf35bc54aca1b20c88bb3b7339ff7d56e09139d77f0ac58079097938251dbbe75e86715cc6b7c0ca945fa8dd8d661beb73b414032798dadee32b5dd61bf105f18d89217760b75c5d966a5a490472ceba9e3b4224f3d89fb2b -m 889aa5b151727a6dc0bad76e99a9f01c -r a5bf833aed90fff9076a0c76ebe4c1a5a633165409d4cc43c6e2934658561526c9e6d5fe8e2dbfba8c149fc9a408cef5a00941a33810d70db2ceeaf47e87f96d3b5ecde112e329544cd12e2c46213f6352e67f35131c000b70d9efc9ee2d7c379128a39d53cac953c92ab0868e6d3ad1add2ac09caf2ee33f05d20ae066fbfa4322e3bee1c538c7cde23aa1ba9a0ecac114ffd6d9cbfc68d530e9d0fd78ac1254d3b9cd691ce432bcd4dcccac82a806c53ed45340005e99502c55a9ca8757745 -7 0dd8fca1209db2c06462cd0f46626931ce4c35ffe2db5f0b2647cf749aa847f12cb81f3f7d66987578e4d624bbc7d81603054e8ce4b747fef55036e68d6f173b6bfa2f4c62860030ce0639eec68c305a7c42498de8b97503f6d7b666499982b25ef128b2b40c2b8bd6f45ead0244f934 --mode 3 -5 0dd8fca1209db2c06462cd0f46626931fe3237b0c0541cee7ff160e3c22c1efa187f101b8acaa0ceee90723ed1469c7afc7cf2b7533333c694447a4241a16f3a -s 285e61797f46be06962777278c541f8dbe00dbe2859a9b66e94ef893f096e33e -z 45755e432b1833dc6e0e7ea522ac0e7dff0af4524d570430ca2f50026645c9cf -v 3
99+
- name: Gather Dependency DLLs
100+
shell: msys2 {0}
101+
run: |
102+
mkdir -p dist
103+
cp *.exe dist/ 2>/dev/null || cp build/*.exe dist/ 2>/dev/null || true
104+
cd dist
105+
shopt -s nullglob
106+
executables=( pixiewps.exe )
107+
108+
if [ ${#executables[@]} -eq 0 ]; then
109+
echo "::error::No .exe files found to process!"
110+
exit 1
111+
fi
112+
113+
for file in "${executables[@]}"; do
114+
echo "Analyzing dependencies for $file..."
115+
116+
ntldd -R "$file" | grep -i 'ucrt64' | while read -r line; do
117+
raw_path=$(echo "$line" | awk -F '=> ' '{print $2}' | awk '{print $1}' | tr -d '\r')
118+
119+
if [ -n "$raw_path" ] && [ "$raw_path" != "not" ]; then
120+
unix_path=$(cygpath -u "$raw_path")
121+
122+
if [ -f "$unix_path" ]; then
123+
cp -n "$unix_path" .
124+
echo "Bundled dependency: $(basename "$unix_path")"
125+
fi
126+
fi
127+
done
128+
done
129+
- name: Upload Build Artifacts
130+
uses: actions/upload-artifact@v7
131+
with:
132+
name: mingw-build-${{matrix.build}}-${{matrix.type}}
133+
path: dist/
134+
if-no-files-found: error

‎src/pixiewrapper.c‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,11 @@ int main(int argc, char** argv) {
129129
int ret = pixie_run(pixie_args, pinbuf, &pinlen);
130130
if(ret == 1) return 0;
131131
if(ret == 0) return 1;
132+
#if defined(_WIN32) || defined(__WIN32__)
133+
_putenv_s("TZ", "UTC");
134+
#else
132135
setenv("TZ", "UTC", 1);
136+
#endif
133137
tzset();
134138
const struct date *date;
135139
for(date = reboot_dates; date->year; date++) {

0 commit comments

Comments
 (0)