From f3de3202882dd2c120a979f093478c29a0857c40 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 11:51:56 +0200 Subject: [PATCH 01/26] [packagechooser] Drop hard-coded data - Now that the configuration can do all the things, we don't need a hard-coded model with bogus entries. --- .../packagechooser/PackageChooserViewStep.cpp | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/modules/packagechooser/PackageChooserViewStep.cpp b/src/modules/packagechooser/PackageChooserViewStep.cpp index 6df785a06..c2e849d5f 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.cpp +++ b/src/modules/packagechooser/PackageChooserViewStep.cpp @@ -183,23 +183,6 @@ PackageChooserViewStep::setConfigurationMap( const QVariantMap& configurationMap fillModel( configurationMap.value( "items" ).toList() ); } - // TODO: replace this hard-coded model - if ( !m_model ) - { - m_model = new PackageListModel( nullptr ); - m_model->addPackage( PackageItem { QString(), - QString(), - "No Desktop", - "Please pick a desktop environment from the list. " - "If you don't want to install a desktop, that's fine, " - "your system will start up in text-only mode and you can " - "install a desktop environment later.", - ":/images/no-selection.png" } ); - m_model->addPackage( PackageItem { "kde", "kde", "Plasma", "Plasma Desktop", ":/images/kde.png" } ); - m_model->addPackage( PackageItem { - "gnome", "gnome", "GNOME", "GNU Networked Object Modeling Environment Desktop", ":/images/gnome.png" } ); - } - if ( first_time && m_widget && m_model ) { hookupModel(); From 781be3368e6c0a469c65170a9abd61026753187b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 11:57:02 +0200 Subject: [PATCH 02/26] [packagechooser] Remove bogus images - KDE and GNOME selection images were drawn by me for the bogus package model, and should not be used. - Keep Calamares logo though, even if it doesn't make much sense to use it in package selection. - Keep the no-selection image since it might be used more often, but it's not very good. --- src/modules/packagechooser/images/gnome.png | Bin 5739 -> 0 bytes src/modules/packagechooser/images/kde.png | Bin 4678 -> 0 bytes src/modules/packagechooser/packagechooser.qrc | 2 -- 3 files changed, 2 deletions(-) delete mode 100644 src/modules/packagechooser/images/gnome.png delete mode 100644 src/modules/packagechooser/images/kde.png diff --git a/src/modules/packagechooser/images/gnome.png b/src/modules/packagechooser/images/gnome.png deleted file mode 100644 index f9f3901e14aeafc94babdf08bb5ffeb99af836a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5739 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 J3*eT){{=a!jIsa# diff --git a/src/modules/packagechooser/images/kde.png b/src/modules/packagechooser/images/kde.png deleted file mode 100644 index 02f3e70ea21282afa79d367f05d602c33cb5ddd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4678 zcmds5`8(9%*M7z@p)riDu_Q}mvM*V(O`$9)dka(c>?9;vMwVpCGKf-5WDD6^F!m-C z%34CUB!rA4vc8Y+`!9UoU*5T{xn{2C^DO5%=RWtj&*!%J>60Ang6seQ4r3z&O8^k? zF9NWl;E#Pkp&R^R^EWzw6#&fJ-7g|t1|tLjcFow}n03g*g^?THsh?47fb*{C5V<;^pPzI;P%4bLvXdcq;*tByU$6EO#PN_;y?z zDlIK-{QLXV98>XBCBO<8e~0}hYo;ITyShpOQGW6Sol}q3p6~vLRs~e{A!-d^h#bnNfcRvMEL4r1^ylo))eyNB*6# z)Ov>lm|Oa{fwZiwfv>N;Q^mR3iwEwWs0dkdN-Y+*_%39;AUY{Y5Kl?g1-4}u?GMeU0eyRU;9Q@I8~Tn zU=@Jvo?DSx!Mm|!eTXv<7o*+bH+!go9gE!2ktfpnC!D`eO-(E|?x>X?rbLAu$otQ! zia1{4aWaZiA-Hzw{UItY!k+u&dyu@uJ$}#57fWQaEjbspG}%_Q zcCHNT>E%`7-Xm_6Xy&8{(Br|iJ@q%PWgn?q|5==Q#LM=U@3Q36{Crg7=5O+|Y0)`p z0Z@6RcI5Z~_`SSb5jbmUUl-Ez=c=JNmY0_|GeV>?j#7(o%|d)x2zEp$x_67F-Mc4P z**kVoD|o)Cg}e`oxh1D{=zg>cK&q;#v9pmLJ`|oGuIlP-9-Dufq+7Z9&_!F4%8ZUZ zK5(Rr>-|(fc1{k{`Sa)RJzQK{nwuq@YQ$V{)TL!t3by3E-NmA#P?@)>(aXhHM}=eC&7$6C#mflJ?WJ9Voh zy@<__&CTVm!lEMO6>XoTe_=Qcf6?GyU-2(7${1u5sHv&R-+!ZtgwP0ED`zZpH9K%k zwk5R{*%a??WC=H-F_#Z|&kVjOm}oOQ$UW1Ww^uwRo}r5z930$*-)PvfS$0tJQW_fE z578E(Dr$}aMU$308e8&uLh(91l0I{d&`E| zR&5g?Bz#+{7DFgHx1vkVzi9n466SN|=%bmTS2B$_YaTR-_tU3OdBVWC^-gnHtsmiWLrTkB&@H8B8yEfD&pQ|DmgP&1}^P= z9$nIMgv1*ZXzDG?uP@E}2C_#C=eEDbooQ<1 zGfK>*V>or!fK~n}ERmh<$#*p2Pqflmlh=G-^3AdoLl_QtRHU1ml$zgYXLFg7NmAZ z5Cywg2AwYqoqzr_7}~%w3N48P(T`Fgmx?gKNR>C0TIK?u6W4s-4h|)D(TXYX@ z;xO?h))E~72@JUhlR5M}zP|txOaNQ*qetQYx~vLLx5RM>#YA4(bxd%u+DED$G~Y6s zf)MRMiyk_(2PitdWt|_bw+pHDO=^pd*jmrd%{6e}pNo-167C5!nW>M&T&xexuB#K~ z;NUp!^}fCRjXtMNj9=rHEu6(KxeswQAi&(hLX3vicyt;vfJsH~PQTTeiLKSKeHZpT zJNaIK)Q3MgxD;X^$i{k$o~iC9l7EIOPvf;r7M8#pSC$~+f2?jSLAG<~FSN)p6*I&` zMuMX*F9yr6EnfWdYs4-PpR2fQk14>;2WuVA<~n@%FfJxdS#pPEHk56ADa3zcp=$C? z>|Wtb7gos~zF7?D;LGvMIg#W4jMuZaX2u*AUV+*f9?d+iOumL~xBD=;NNgw|Z0 zc7oZLW16j+`~BoIc@+{tlyt=Fv%~zCirvAy??%01Kp3+pcws0OI_S21Y;Pt-0xuz< zAIO$pF}%Ro*eWb6By~)26ES(3k^`VO2(?SQReqPOZEXV>sggKAfs=5$VHy|_ZCJp2 zS&;;$Y;)E#+DptZr={S?9SS1(v=@Llx%#8Cxze=*MqAMG_fu6Olcy}dptp;34)U@HF0>IqB<4&)dh$MwqO zy(!@P#l#$a3==_lT!|39Vbuw9-|=Vvvz!i5npn+A3mI!x5{-7$`)f5;Z+q?OjAi@< z$yI63*uL4A4{kif6ItRZti#t+`qMbT;AQaP!Gi}32Az{EA6;nZc_+t9Ll`3obzt|G zFY!4!;$eRWFYg+i2#s!+B)n*EH>vy6YpM~sT?aQVeFMske0=0!9!Sy9ImOaKpr{04 z{|q7;iWPn$s>k)`UGc&tQFBwMED+5PD&;u%_+p zra<=7UY~giuVSeJtm~QG`N=Ki&TW_yyQQjK+EIj~ zMhCfZ$}aIU%DVxJf_L&?V>otF^)A6xcnHT8!zLLU8ym;%&40T^1}@V#K@n)3;KAMRWZy4@7y}1j6vJWg&J&(QBQmKv!)Fub%HKW8`_$84|B?5$?pdi3z?VG=YeD>+&ep`z@by z$2~8o3L0t%pU~Hj&TivCMSp1s*IHj)Oe!gn-BmkD)Wf&vQSPejRl{;HJ$c$c0$B6^ zQ#hsNpAKx&yx0n5Nbx#xl7#bSB>*(Mivg1z=0)GwR{7$COzw@^t(1|N5 z86B=`q54I%;DrR0%OB(Aqj?LyO9If>AUNOu%xYk(q`aJ~*`YgaIS6{Y`K3pnLB_EJ zXJAjCTlqHA^YrYNclVQHnJSktm6esJG%ug*|Mba`9>?J=dK~WvXHEEzcW3JlY=!-u z9}F3f+LN4;;@Ey&3%XU>rX58(uY-VE?FwVOnLn~BXwH_I31Rhd*aEJ8X08T0A0Xa3 zDM4xfa(zSR#^0vt<@*7@5}`v(Vk;32ZfBps`t)kORzxRsJaT7)YR$=35ycvm2A_RK z1F#KoEVLcbo`&!B5p+Ugf3mtFn>qyuvix+Y+5FZX*c96uS9!!kQ_e$E?tjp#yXZ&0 z##9Qcd8F|t0|lg+urZmR>xdeTG~pD+#W0)Xs`AtY-kXH zA_d};1*VtVnR+srJiIkzNamk-J?xwMLx}8LfqU&Y_7NrCFXgI^Tv-?%=r8O4HCnIL z-qDd7n&h1o2XQ&{Mt~r58dlIhH(Z8Q-@?iKD1r=A6ruJPv%T@_{~YgQ0gvB~Ak>bG zmTDmeC_a7WHa2{t;j2U|g$yGiyvv{p$z65mXa1Ad?_PRHKP-DIM5_p2t8gt zzM!?O9CeP}?gxkd)^|p4!9Uqz-AWCVWI92G(@0da&B z*?-1zaCg3>@y8lh#Pe3|>OG{nSRHzEjSGv5>2qa`zV9`SeRj_$lbRxnXP)_1ymIO@ zhgzuIk#25jd9$ox-Q)p_5rqmv)S?$qH9V3HFQDwzXD-S`fSp!F#8&A1*BYMi^*>6R z!fB&8pw2~ZL9>CU>KxbWFG9^I3v~}9=*b@kek!7xIQskh9TrFHL*?fKabit%hbQsc0_la`iNERpKX(jJkexY&TS z^mKvHx{=yzhv2<&=$tcDUD!rRqR==8cR2%?nk7HqE<-se*g!AS$%@;I&>EAaxxEmBQnN4LOkZ21jjYh%zNUG*G;dyzWK&dJd}X`|VU<`9vm)?kKO2Og zejK_vflnrPPW9C6T|_tR*HWx+l)DhC{SmRTvDG`<8)jO2EWFZu*xX!q>h1jM(>G@E za?kK4m=N;h}{P@1eAU$y9xRTi1*-t zoV%yz@ngpj5T8oH^XFh@D*@1%SMx2iT+XW#SkzyJZ(^V+~MZ`0KaA_JOBUy diff --git a/src/modules/packagechooser/packagechooser.qrc b/src/modules/packagechooser/packagechooser.qrc index 8f211c1bb..3b9c96a5b 100644 --- a/src/modules/packagechooser/packagechooser.qrc +++ b/src/modules/packagechooser/packagechooser.qrc @@ -1,8 +1,6 @@ images/no-selection.png - images/kde.png - images/gnome.png images/calamares.png From 20f43225b55170bf95f549208e1a4f862423703d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 12:02:03 +0200 Subject: [PATCH 03/26] [packagechooser] Adjust AppData path for tests - running tests by hand or from "make test" uses different paths. --- src/modules/packagechooser/Tests.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/modules/packagechooser/Tests.cpp b/src/modules/packagechooser/Tests.cpp index 3e7961b92..7e2552c28 100644 --- a/src/modules/packagechooser/Tests.cpp +++ b/src/modules/packagechooser/Tests.cpp @@ -47,6 +47,14 @@ PackageChooserTests::testAppData() { // Path from the build-dir QString appdataName( "../io.calamares.calamares.appdata.xml" ); + if ( !QFile::exists( appdataName ) ) + { + // Running the tests by hand from the build-dir uses the + // path above, but ctest, used by "make test", runs them in + // the module build dir (e.g. build/src/modules/packagechooser) + // so we need to adjust the path some. + appdataName.prepend( "../../../" ); + } QVERIFY( QFile::exists( appdataName ) ); QVariantMap m; From 729616ac6a20eb9a341b5fde9cd969abd8ea2499 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 12:14:37 +0200 Subject: [PATCH 04/26] Changes: pre-release housekeeping --- CHANGES | 2 +- CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index d41d4b8fa..855bf8fb8 100644 --- a/CHANGES +++ b/CHANGES @@ -3,7 +3,7 @@ contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.2.0. The release notes on the website will have to do for older versions. -# 3.2.12 (unreleased) # +# 3.2.12 (2019-08-07) # This release contains contributions from (alphabetically by first name): - apt-ghetto diff --git a/CMakeLists.txt b/CMakeLists.txt index e28d28f38..3e5dde2c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,7 @@ project( CALAMARES VERSION 3.2.12 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # From 6c5d0e9d3d76c9abdfdb319b4ebe493b0786c201 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 12:18:26 +0200 Subject: [PATCH 05/26] CI: make scripts executable --- ci/AppImage.sh | 0 ci/RELEASE.sh | 0 ci/txstats.py | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 ci/AppImage.sh mode change 100644 => 100755 ci/RELEASE.sh mode change 100644 => 100755 ci/txstats.py diff --git a/ci/AppImage.sh b/ci/AppImage.sh old mode 100644 new mode 100755 diff --git a/ci/RELEASE.sh b/ci/RELEASE.sh old mode 100644 new mode 100755 diff --git a/ci/txstats.py b/ci/txstats.py old mode 100644 new mode 100755 index 2edf1dd5b..34ef4fc97 --- a/ci/txstats.py +++ b/ci/txstats.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # # Uses the Transifex API to get a list of enabled languages, # and outputs CMake settings for inclusion into CMakeLists.txt. From 251e16e72c69784aaf5c9f00b9fd4dcfdf63b6ed Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 12:31:52 +0200 Subject: [PATCH 06/26] [libcalamares] Allow en_US locale for tests as well --- src/libcalamares/locale/Tests.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcalamares/locale/Tests.cpp b/src/libcalamares/locale/Tests.cpp index fa84cd2fb..a9e5e7399 100644 --- a/src/libcalamares/locale/Tests.cpp +++ b/src/libcalamares/locale/Tests.cpp @@ -35,6 +35,8 @@ LocaleTests::~LocaleTests() {} void LocaleTests::initTestCase() { + // Otherwise plain get() is dubious in the TranslatableConfiguration tests + QVERIFY( ( QLocale().name() == "C" ) || ( QLocale().name() == "en_US" ) ); } void @@ -121,7 +123,6 @@ LocaleTests::testTranslatableConfig1() QVERIFY( ts0.isEmpty() ); QCOMPARE( ts0.count(), 1 ); // the empty string - QCOMPARE( QLocale().name(), "C" ); // Otherwise plain get() is dubious CalamaresUtils::Locale::TranslatedString ts1( "Hello" ); QCOMPARE( ts1.count(), 1 ); QVERIFY( !ts1.isEmpty() ); @@ -144,7 +145,6 @@ LocaleTests::testTranslatableConfig1() void LocaleTests::testTranslatableConfig2() { - QCOMPARE( QLocale().name(), "C" ); // Otherwise plain get() is dubious QVariantMap map; for ( const auto& language : someLanguages() ) From e2cb2690bd7a140097a4118cf376e91e416f0607 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 12:50:46 +0200 Subject: [PATCH 07/26] CI: tell where if the release builds fail --- ci/RELEASE.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/RELEASE.sh b/ci/RELEASE.sh index dfb65cfeb..78fc1f7ce 100755 --- a/ci/RELEASE.sh +++ b/ci/RELEASE.sh @@ -54,7 +54,7 @@ if test "x$BUILD_CLANG" = "xtrue" ; then rm -rf "$BUILDDIR" mkdir "$BUILDDIR" || { echo "Could not create build directory." ; exit 1 ; } ( cd "$BUILDDIR" && CC=clang CXX=clang++ cmake .. && make -j4 ) || { echo "Could not perform test-build in $BUILDDIR." ; exit 1 ; } - ( cd "$BUILDDIR" && make test ) || { echo "Tests failed in $BUILDDIR." ; exit 1 ; } + ( cd "$BUILDDIR" && make test ) || { echo "Tests failed in $BUILDDIR (clang)." ; exit 1 ; } fi fi @@ -93,7 +93,7 @@ TMPDIR=$(mktemp -d --suffix="-calamares-$D") test -d "$TMPDIR" || { echo "Could not create tarball-build directory." ; exit 1 ; } tar xzf "$TAR_FILE" -C "$TMPDIR" || { echo "Could not unpack tarball." ; exit 1 ; } test -d "$TMPDIR/$TAR_V" || { echo "Tarball did not contain source directory." ; exit 1 ; } -( cd "$TMPDIR/$TAR_V" && cmake . && make -j4 && make test ) || { echo "Tarball build failed." ; exit 1 ; } +( cd "$TMPDIR/$TAR_V" && cmake . && make -j4 && make test ) || { echo "Tarball build failed in $TMPDIR." ; exit 1 ; } ### Cleanup # From 8636689ceacefd940cbc4f8ab75eea3bba7870e9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 12:54:03 +0200 Subject: [PATCH 08/26] [packagechooser] Fix tests when run from in-source build --- src/modules/packagechooser/Tests.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/modules/packagechooser/Tests.cpp b/src/modules/packagechooser/Tests.cpp index 7e2552c28..537ecbd3c 100644 --- a/src/modules/packagechooser/Tests.cpp +++ b/src/modules/packagechooser/Tests.cpp @@ -45,21 +45,23 @@ PackageChooserTests::testBogus() void PackageChooserTests::testAppData() { - // Path from the build-dir - QString appdataName( "../io.calamares.calamares.appdata.xml" ); - if ( !QFile::exists( appdataName ) ) + // Path from the build-dir and from the running-the-test varies, + // for in-source build, for build/, and for tests-in-build/, + // so look in multiple places. + QString appdataName( "io.calamares.calamares.appdata.xml" ); + for ( const auto& prefix : QStringList { "", "../", "../../../", "../../../../" } ) { - // Running the tests by hand from the build-dir uses the - // path above, but ctest, used by "make test", runs them in - // the module build dir (e.g. build/src/modules/packagechooser) - // so we need to adjust the path some. - appdataName.prepend( "../../../" ); + if ( QFile::exists( prefix + appdataName ) ) + { + appdataName = prefix + appdataName; + break; + } } QVERIFY( QFile::exists( appdataName ) ); QVariantMap m; m.insert( "appdata", appdataName ); - + PackageItem p1 = PackageItem::fromAppData( m ); #ifdef HAVE_XML QVERIFY( p1.isValid() ); @@ -71,10 +73,10 @@ PackageChooserTests::testAppData() QCOMPARE( p1.description.get( QLocale( "en_GB" ) ), "Calamares Linux Installer" ); QCOMPARE( p1.description.get( QLocale( "nl" ) ), "Calamares is een installatieprogramma voor Linux distributies." ); QVERIFY( p1.screenshot.isNull() ); - + m.insert( "id", "calamares" ); m.insert( "screenshot", ":/images/calamares.png" ); - PackageItem p2= PackageItem::fromAppData( m ); + PackageItem p2 = PackageItem::fromAppData( m ); QVERIFY( p2.isValid() ); QCOMPARE( p2.id, "calamares" ); QCOMPARE( p2.description.get( QLocale( "nl" ) ), "Calamares is een installatieprogramma voor Linux distributies." ); From 2bb1474ebb9373b3660918bb937a164dcc7a85d9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 22:15:08 +0200 Subject: [PATCH 09/26] Changes: post-release housekeeping --- CHANGES | 9 +++++++++ CMakeLists.txt | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 855bf8fb8..9879043dc 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,15 @@ contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.2.0. The release notes on the website will have to do for older versions. +# 3.2.13 (unreleased) # + +This release contains contributions from (alphabetically by first name): + +## Core ## + +## Modules ## + + # 3.2.12 (2019-08-07) # This release contains contributions from (alphabetically by first name): diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e5dde2c6..36c09abf0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,10 +37,10 @@ cmake_minimum_required( VERSION 3.3 FATAL_ERROR ) project( CALAMARES - VERSION 3.2.12 + VERSION 3.2.13 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # From 6b659b6f48e57ce5807c7691ebbf57b768af8b1b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 23:42:33 +0200 Subject: [PATCH 10/26] [libcalamares] Apply current coding standard to locale/ --- src/libcalamares/locale/TranslatableConfiguration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcalamares/locale/TranslatableConfiguration.h b/src/libcalamares/locale/TranslatableConfiguration.h index a055cbfbd..45679bce0 100644 --- a/src/libcalamares/locale/TranslatableConfiguration.h +++ b/src/libcalamares/locale/TranslatableConfiguration.h @@ -51,14 +51,14 @@ public: } /** @brief How many strings (translations) are there? - * + * * This is always at least 1 (for the untranslated string), * but may be more than 1 even when isEmpty() is true -- * if there is no untranslated version, for instance. */ int count() const { return m_strings.count(); } /** @brief Consider this string empty? - * + * * Only the state of the untranslated string is considered, * so count() may be more than 1 even while the string is empty. */ From 81fa1735b15b26735cde85bae6515b09e60db35c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Aug 2019 23:43:45 +0200 Subject: [PATCH 11/26] [libcalamares] Apply current coding style --- src/libcalamares/CalamaresConfig.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcalamares/CalamaresConfig.h.in b/src/libcalamares/CalamaresConfig.h.in index 6fbab422c..55468cf15 100644 --- a/src/libcalamares/CalamaresConfig.h.in +++ b/src/libcalamares/CalamaresConfig.h.in @@ -12,4 +12,4 @@ #cmakedefine WITH_PYTHON #cmakedefine WITH_PYTHONQT -#endif // CALAMARESCONFIG_H +#endif // CALAMARESCONFIG_H From 6e9f1be9e9245f0b062097f61b36ce8a6f6f4e11 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 11:56:20 +0200 Subject: [PATCH 12/26] [libcalamares] Don't reformat string tables in GeoIP --- src/libcalamares/geoip/Handler.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/libcalamares/geoip/Handler.cpp b/src/libcalamares/geoip/Handler.cpp index df033f476..21b88dd4b 100644 --- a/src/libcalamares/geoip/Handler.cpp +++ b/src/libcalamares/geoip/Handler.cpp @@ -38,11 +38,15 @@ handlerTypes() { using Type = CalamaresUtils::GeoIP::Handler::Type; + // *INDENT-OFF* + // clang-format off static const NamedEnumTable names{ - { QStringLiteral( "none" ), Type::None}, - { QStringLiteral( "json" ), Type::JSON}, - { QStringLiteral( "xml" ), Type::XML} + { QStringLiteral( "none" ), Type::None }, + { QStringLiteral( "json" ), Type::JSON }, + { QStringLiteral( "xml" ), Type::XML } }; + // *INDENT-ON* + // clang-format on return names; } From a2ab91474fa60110bc4af4ab051c00454bd2989b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 12:29:06 +0200 Subject: [PATCH 13/26] CI: massage the .clang-format file, it's just ASCII --- .clang-format | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/.clang-format b/.clang-format index d76498a3e..e98283194 100644 --- a/.clang-format +++ b/.clang-format @@ -1,34 +1,32 @@ ---- +--- BasedOnStyle: WebKit AlignAfterOpenBracket: Align AlignEscapedNewlines: Left -AllowAllParametersOfDeclarationOnNextLine: 'false' +AllowAllParametersOfDeclarationOnNextLine: "false" AllowShortFunctionsOnASingleLine: Inline -AllowShortIfStatementsOnASingleLine: 'false' -AllowShortLoopsOnASingleLine: 'false' +AllowShortIfStatementsOnASingleLine: "false" +AllowShortLoopsOnASingleLine: "false" AlwaysBreakAfterReturnType: TopLevelDefinitions AlwaysBreakTemplateDeclarations: Yes -BinPackArguments: 'false' -BinPackParameters: 'false' +BinPackArguments: "false" +BinPackParameters: "false" BreakBeforeBraces: Allman -BreakBeforeTernaryOperators: 'true' +BreakBeforeTernaryOperators: "true" BreakConstructorInitializers: BeforeComma ColumnLimit: 120 -Cpp11BracedListStyle: 'false' -FixNamespaceComments: 'true' +Cpp11BracedListStyle: "false" +FixNamespaceComments: "true" IncludeBlocks: Preserve -IndentWidth: '4' -MaxEmptyLinesToKeep: '2' +IndentWidth: "4" +MaxEmptyLinesToKeep: "2" NamespaceIndentation: None PointerAlignment: Left -ReflowComments: 'false' -SortIncludes: 'true' -SpaceAfterCStyleCast: 'false' -SpacesBeforeTrailingComments: '2' -SpacesInAngles: 'true' -SpacesInParentheses: 'true' -SpacesInSquareBrackets: 'true' +ReflowComments: "false" +SortIncludes: "true" +SpaceAfterCStyleCast: "false" +SpacesBeforeTrailingComments: "2" +SpacesInAngles: "true" +SpacesInParentheses: "true" +SpacesInSquareBrackets: "true" Standard: Cpp11 - -... From ec073ee188c40b7430955fb4fc4213a75480b2d9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 12:32:21 +0200 Subject: [PATCH 14/26] [libcalamares] Apply coding style to geoip/ --- src/libcalamares/geoip/GeoIPJSON.cpp | 28 +++++++++------ src/libcalamares/geoip/GeoIPJSON.h | 8 ++--- src/libcalamares/geoip/GeoIPXML.cpp | 14 ++++++-- src/libcalamares/geoip/GeoIPXML.h | 8 ++--- src/libcalamares/geoip/Handler.cpp | 50 +++++++++++++-------------- src/libcalamares/geoip/Handler.h | 9 +++-- src/libcalamares/geoip/Interface.cpp | 10 +++--- src/libcalamares/geoip/Interface.h | 30 ++++++++++------ src/libcalamares/geoip/test_geoip.cpp | 29 ++++++++++------ 9 files changed, 106 insertions(+), 80 deletions(-) diff --git a/src/libcalamares/geoip/GeoIPJSON.cpp b/src/libcalamares/geoip/GeoIPJSON.cpp index 4b7562d7e..85dc79619 100644 --- a/src/libcalamares/geoip/GeoIPJSON.cpp +++ b/src/libcalamares/geoip/GeoIPJSON.cpp @@ -30,7 +30,7 @@ namespace CalamaresUtils namespace GeoIP { -GeoIPJSON::GeoIPJSON(const QString& attribute) +GeoIPJSON::GeoIPJSON( const QString& attribute ) : Interface( attribute.isEmpty() ? QStringLiteral( "time_zone" ) : attribute ) { } @@ -42,19 +42,25 @@ GeoIPJSON::GeoIPJSON(const QString& attribute) * "foo" of @p m, like a regular JSON lookup would. */ static QString -selectMap( const QVariantMap& m, const QStringList& l, int index) +selectMap( const QVariantMap& m, const QStringList& l, int index ) { if ( index >= l.count() ) + { return QString(); + } - QString attributeName = l[index]; + QString attributeName = l[ index ]; if ( index == l.count() - 1 ) + { return CalamaresUtils::getString( m, attributeName ); + } else { bool success = false; // bogus if ( m.contains( attributeName ) ) - return selectMap( CalamaresUtils::getSubMap( m, attributeName, success ), l, index+1 ); + { + return selectMap( CalamaresUtils::getSubMap( m, attributeName, success ), l, index + 1 ); + } return QString(); } } @@ -67,18 +73,18 @@ GeoIPJSON::rawReply( const QByteArray& data ) YAML::Node doc = YAML::Load( data ); QVariant var = CalamaresUtils::yamlToVariant( doc ); - if ( !var.isNull() && - var.isValid() && - var.type() == QVariant::Map ) + if ( !var.isNull() && var.isValid() && var.type() == QVariant::Map ) { - return selectMap( var.toMap(), m_element.split('.'), 0 ); + return selectMap( var.toMap(), m_element.split( '.' ), 0 ); } else + { cWarning() << "Invalid YAML data for GeoIPJSON"; + } } catch ( YAML::Exception& e ) { - CalamaresUtils::explainYamlException( e, data, "GeoIP data"); + CalamaresUtils::explainYamlException( e, data, "GeoIP data" ); } return QString(); @@ -90,5 +96,5 @@ GeoIPJSON::processReply( const QByteArray& data ) return splitTZString( rawReply( data ) ); } -} -} // namespace +} // namespace GeoIP +} // namespace CalamaresUtils diff --git a/src/libcalamares/geoip/GeoIPJSON.h b/src/libcalamares/geoip/GeoIPJSON.h index 4d7ded631..3f7756dd8 100644 --- a/src/libcalamares/geoip/GeoIPJSON.h +++ b/src/libcalamares/geoip/GeoIPJSON.h @@ -45,9 +45,9 @@ public: explicit GeoIPJSON( const QString& attribute = QString() ); virtual RegionZonePair processReply( const QByteArray& ) override; - virtual QString rawReply(const QByteArray & ) override; -} ; + virtual QString rawReply( const QByteArray& ) override; +}; -} -} // namespace +} // namespace GeoIP +} // namespace CalamaresUtils #endif diff --git a/src/libcalamares/geoip/GeoIPXML.cpp b/src/libcalamares/geoip/GeoIPXML.cpp index b658042bf..d84eb3b21 100644 --- a/src/libcalamares/geoip/GeoIPXML.cpp +++ b/src/libcalamares/geoip/GeoIPXML.cpp @@ -48,10 +48,12 @@ getElementTexts( const QByteArray& data, const QString& tag ) cDebug() << "GeoIP found" << tzElements.length() << "elements"; for ( int it = 0; it < tzElements.length(); ++it ) { - auto e = tzElements.at(it).toElement(); + auto e = tzElements.at( it ).toElement(); auto e_text = e.text(); if ( !e_text.isEmpty() ) + { elements.append( e_text ); + } } } else @@ -60,7 +62,9 @@ getElementTexts( const QByteArray& data, const QString& tag ) } if ( elements.count() < 1 ) + { cWarning() << "GeopIP XML had no non-empty elements" << tag; + } return elements; } @@ -71,7 +75,9 @@ GeoIPXML::rawReply( const QByteArray& data ) { for ( const auto& e : getElementTexts( data, m_element ) ) if ( !e.isEmpty() ) + { return e; + } return QString(); } @@ -83,11 +89,13 @@ GeoIPXML::processReply( const QByteArray& data ) { auto tz = splitTZString( e ); if ( !tz.first.isEmpty() ) + { return tz; + } } return RegionZonePair(); } -} -} // namespace +} // namespace GeoIP +} // namespace CalamaresUtils diff --git a/src/libcalamares/geoip/GeoIPXML.h b/src/libcalamares/geoip/GeoIPXML.h index 356e88b12..73147ff91 100644 --- a/src/libcalamares/geoip/GeoIPXML.h +++ b/src/libcalamares/geoip/GeoIPXML.h @@ -45,9 +45,9 @@ public: explicit GeoIPXML( const QString& element = QString() ); virtual RegionZonePair processReply( const QByteArray& ) override; - virtual QString rawReply(const QByteArray & ) override; -} ; + virtual QString rawReply( const QByteArray& ) override; +}; -} -} // namespace +} // namespace GeoIP +} // namespace CalamaresUtils #endif diff --git a/src/libcalamares/geoip/Handler.cpp b/src/libcalamares/geoip/Handler.cpp index 21b88dd4b..6017c404f 100644 --- a/src/libcalamares/geoip/Handler.cpp +++ b/src/libcalamares/geoip/Handler.cpp @@ -19,7 +19,7 @@ #include "Handler.h" #include "GeoIPJSON.h" -#if defined(QT_XML_LIB) +#if defined( QT_XML_LIB ) #include "GeoIPXML.h" #endif @@ -28,8 +28,8 @@ #include "utils/Variant.h" #include -#include #include +#include #include @@ -76,7 +76,7 @@ Handler::Handler( const QString& implementation, const QString& url, const QStri { cWarning() << "GeoIP style *none* does not do anything."; } -#if !defined(QT_XML_LIB) +#if !defined( QT_XML_LIB ) else if ( m_type == Type::XML ) { m_type = Type::None; @@ -85,9 +85,7 @@ Handler::Handler( const QString& implementation, const QString& url, const QStri #endif } -Handler::~Handler() -{ -} +Handler::~Handler() {} static QByteArray synchronous_get( const QString& urlstring ) @@ -108,17 +106,17 @@ synchronous_get( const QString& urlstring ) static std::unique_ptr< Interface > create_interface( Handler::Type t, const QString& selector ) { - switch( t ) + switch ( t ) { - case Handler::Type::None: - return nullptr; - case Handler::Type::JSON: - return std::make_unique< GeoIPJSON >( selector ); - case Handler::Type::XML: -#if defined(QT_XML_LIB) - return std::make_unique< GeoIPXML >( selector ); + case Handler::Type::None: + return nullptr; + case Handler::Type::JSON: + return std::make_unique< GeoIPJSON >( selector ); + case Handler::Type::XML: +#if defined( QT_XML_LIB ) + return std::make_unique< GeoIPXML >( selector ); #else - return nullptr; + return nullptr; #endif } NOTREACHED return nullptr; @@ -129,7 +127,9 @@ do_query( Handler::Type type, const QString& url, const QString& selector ) { const auto interface = create_interface( type, selector ); if ( !interface ) + { return RegionZonePair(); + } return interface->processReply( synchronous_get( url ) ); } @@ -139,7 +139,9 @@ do_raw_query( Handler::Type type, const QString& url, const QString& selector ) { const auto interface = create_interface( type, selector ); if ( !interface ) + { return QString(); + } return interface->rawReply( synchronous_get( url ) ); } @@ -148,7 +150,9 @@ RegionZonePair Handler::get() const { if ( !isValid() ) + { return RegionZonePair(); + } return do_query( m_type, m_url, m_selector ); } @@ -160,17 +164,16 @@ Handler::query() const QString url = m_url; QString selector = m_selector; - return QtConcurrent::run( [=] - { - return do_query( type, url, selector ); - } ); + return QtConcurrent::run( [=] { return do_query( type, url, selector ); } ); } QString Handler::getRaw() const { if ( !isValid() ) + { return QString(); + } return do_raw_query( m_type, m_url, m_selector ); } @@ -182,11 +185,8 @@ Handler::queryRaw() const QString url = m_url; QString selector = m_selector; - return QtConcurrent::run( [=] - { - return do_raw_query( type, url, selector ); - } ); + return QtConcurrent::run( [=] { return do_raw_query( type, url, selector ); } ); } -} -} // namespace +} // namespace GeoIP +} // namespace CalamaresUtils diff --git a/src/libcalamares/geoip/Handler.h b/src/libcalamares/geoip/Handler.h index 8e435b5b7..518964caf 100644 --- a/src/libcalamares/geoip/Handler.h +++ b/src/libcalamares/geoip/Handler.h @@ -21,9 +21,9 @@ #include "Interface.h" -#include #include #include +#include namespace CalamaresUtils { @@ -46,7 +46,7 @@ public: None, JSON, XML - } ; + }; /** @brief An unconfigured handler; this always returns errors. */ Handler(); @@ -89,7 +89,6 @@ private: const QString m_selector; }; -} -} // namespace +} // namespace GeoIP +} // namespace CalamaresUtils #endif - diff --git a/src/libcalamares/geoip/Interface.cpp b/src/libcalamares/geoip/Interface.cpp index 36e680aab..2cecb63c5 100644 --- a/src/libcalamares/geoip/Interface.cpp +++ b/src/libcalamares/geoip/Interface.cpp @@ -25,14 +25,12 @@ namespace CalamaresUtils namespace GeoIP { -Interface::Interface(const QString& e) +Interface::Interface( const QString& e ) : m_element( e ) { } -Interface::~Interface() -{ -} +Interface::~Interface() {} RegionZonePair splitTZString( const QString& tz ) @@ -53,5 +51,5 @@ splitTZString( const QString& tz ) return RegionZonePair( QString(), QString() ); } -} -} // namespace +} // namespace GeoIP +} // namespace CalamaresUtils diff --git a/src/libcalamares/geoip/Interface.h b/src/libcalamares/geoip/Interface.h index 7db8c4c91..1a9beaa41 100644 --- a/src/libcalamares/geoip/Interface.h +++ b/src/libcalamares/geoip/Interface.h @@ -27,7 +27,7 @@ class QByteArray; -namespace CalamaresUtils +namespace CalamaresUtils { namespace GeoIP { @@ -38,18 +38,27 @@ namespace GeoIP * pasting the strings back together with a "/" is the right thing to * do. The Zone **may** contain a "/" (e.g. "Kentucky/Monticello"). */ -class DLLEXPORT RegionZonePair : public QPair +class DLLEXPORT RegionZonePair : public QPair< QString, QString > { public: /** @brief Construct from an existing pair. */ - explicit RegionZonePair( const QPair& p ) : QPair(p) { } + explicit RegionZonePair( const QPair& p ) + : QPair( p ) + { + } /** @brief Construct from two strings, like qMakePair(). */ - RegionZonePair( const QString& region, const QString& zone ) : QPair( region, zone ) { } + RegionZonePair( const QString& region, const QString& zone ) + : QPair( region, zone ) + { + } /** @brief An invalid zone pair (empty strings). */ - RegionZonePair() : QPair( QString(), QString() ) { } + RegionZonePair() + : QPair( QString(), QString() ) + { + } bool isValid() const { return !first.isEmpty(); } -} ; +}; /** @brief Splits a region/zone string into a pair. * @@ -60,8 +69,7 @@ public: * pair of empty QStrings if it can't. (e.g. America/North Dakota/Beulah * will return "America", "North_Dakota/Beulah"). */ -DLLEXPORT RegionZonePair -splitTZString( const QString& s ); +DLLEXPORT RegionZonePair splitTZString( const QString& s ); /** * @brief Interface for GeoIP retrievers. @@ -93,8 +101,8 @@ protected: Interface( const QString& e = QString() ); QString m_element; // string for selecting from data -} ; +}; -} -} // namespace +} // namespace GeoIP +} // namespace CalamaresUtils #endif diff --git a/src/libcalamares/geoip/test_geoip.cpp b/src/libcalamares/geoip/test_geoip.cpp index 5f7ab935c..32c6f4e24 100644 --- a/src/libcalamares/geoip/test_geoip.cpp +++ b/src/libcalamares/geoip/test_geoip.cpp @@ -30,34 +30,40 @@ using std::cerr; using namespace CalamaresUtils::GeoIP; -int main(int argc, char** argv) +int +main( int argc, char** argv ) { - if (argc != 2) + if ( argc != 2 ) { cerr << "Usage: curl url | test_geoip \n"; return 1; } Interface* handler = nullptr; - if ( QStringLiteral( "json" ) == argv[1] ) + if ( QStringLiteral( "json" ) == argv[ 1 ] ) + { handler = new GeoIPJSON; + } #ifdef QT_XML_LIB - else if ( QStringLiteral( "xml" ) == argv[1] ) + else if ( QStringLiteral( "xml" ) == argv[ 1 ] ) + { handler = new GeoIPXML; + } #endif if ( !handler ) { - cerr << "Unknown format '" << argv[1] << "'\n"; + cerr << "Unknown format '" << argv[ 1 ] << "'\n"; return 1; } QByteArray ba; - while( !std::cin.eof() ) { - char arr[1024]; - std::cin.read(arr, sizeof(arr)); - int s = static_cast( std::cin.gcount() ); - ba.append(arr, s); + while ( !std::cin.eof() ) + { + char arr[ 1024 ]; + std::cin.read( arr, sizeof( arr ) ); + int s = static_cast< int >( std::cin.gcount() ); + ba.append( arr, s ); } auto tz = handler->processReply( ba ); @@ -67,7 +73,8 @@ int main(int argc, char** argv) } else { - std::cout << "TimeZone Region=" << tz.first.toLatin1().constData() << "\nTimeZone Zone=" << tz.second.toLatin1().constData() << '\n'; + std::cout << "TimeZone Region=" << tz.first.toLatin1().constData() + << "\nTimeZone Zone=" << tz.second.toLatin1().constData() << '\n'; } return 0; From 839e496fcb3c6309d4337c6d7828ae11f8a344bb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 12:40:13 +0200 Subject: [PATCH 15/26] CI: when I said 'left' I meant 'dont' --- .clang-format | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.clang-format b/.clang-format index e98283194..cc430e627 100644 --- a/.clang-format +++ b/.clang-format @@ -2,7 +2,7 @@ BasedOnStyle: WebKit AlignAfterOpenBracket: Align -AlignEscapedNewlines: Left +AlignEscapedNewlines: DontAlign AllowAllParametersOfDeclarationOnNextLine: "false" AllowShortFunctionsOnASingleLine: Inline AllowShortIfStatementsOnASingleLine: "false" From 115f5bfd82e3193d90b257b41880e12cc4660da7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 12:41:41 +0200 Subject: [PATCH 16/26] [libcalamares] Apply coding style to remainder of geoip/ --- src/libcalamares/geoip/GeoIPTests.cpp | 65 +++++++++++++-------------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/src/libcalamares/geoip/GeoIPTests.cpp b/src/libcalamares/geoip/GeoIPTests.cpp index ec7511370..c24b6d98f 100644 --- a/src/libcalamares/geoip/GeoIPTests.cpp +++ b/src/libcalamares/geoip/GeoIPTests.cpp @@ -34,21 +34,16 @@ QTEST_GUILESS_MAIN( GeoIPTests ) using namespace CalamaresUtils::GeoIP; -GeoIPTests::GeoIPTests() -{ -} +GeoIPTests::GeoIPTests() {} -GeoIPTests::~GeoIPTests() -{ -} +GeoIPTests::~GeoIPTests() {} void GeoIPTests::initTestCase() { } -static const char json_data_attribute[] = - "{\"time_zone\":\"Europe/Amsterdam\"}"; +static const char json_data_attribute[] = "{\"time_zone\":\"Europe/Amsterdam\"}"; void GeoIPTests::testJSON() @@ -67,7 +62,8 @@ GeoIPTests::testJSON() QCOMPARE( tz.first, QStringLiteral( "America" ) ); } -void GeoIPTests::testJSONalt() +void +GeoIPTests::testJSONalt() { GeoIPJSON handler( "zona_de_hora" ); @@ -102,7 +98,7 @@ GeoIPTests::testJSONbad() static const char xml_data_ubiquity[] = - R"( + R"( 85.150.1.1 OK NL @@ -133,8 +129,8 @@ GeoIPTests::testXML() void GeoIPTests::testXML2() { - static const char data[] = - "America/North Dakota/Beulah"; // With a space! + static const char data[] + = "America/North Dakota/Beulah"; // With a space! #ifdef QT_XML_LIB GeoIPXML handler; @@ -146,7 +142,8 @@ GeoIPTests::testXML2() } -void GeoIPTests::testXMLalt() +void +GeoIPTests::testXMLalt() { #ifdef QT_XML_LIB GeoIPXML handler( "ZT" ); @@ -173,29 +170,30 @@ GeoIPTests::testXMLbad() #endif } -void GeoIPTests::testSplitTZ() +void +GeoIPTests::testSplitTZ() { using namespace CalamaresUtils::GeoIP; - auto tz = splitTZString( QStringLiteral("Moon/Dark_side") ); - QCOMPARE( tz.first, QStringLiteral("Moon") ); - QCOMPARE( tz.second, QStringLiteral("Dark_side") ); + auto tz = splitTZString( QStringLiteral( "Moon/Dark_side" ) ); + QCOMPARE( tz.first, QStringLiteral( "Moon" ) ); + QCOMPARE( tz.second, QStringLiteral( "Dark_side" ) ); // Some providers return weirdly escaped data - tz = splitTZString( QStringLiteral("America\\/NewYork") ); - QCOMPARE( tz.first, QStringLiteral("America") ); - QCOMPARE( tz.second, QStringLiteral("NewYork") ); // That's not actually the zone name + tz = splitTZString( QStringLiteral( "America\\/NewYork" ) ); + QCOMPARE( tz.first, QStringLiteral( "America" ) ); + QCOMPARE( tz.second, QStringLiteral( "NewYork" ) ); // That's not actually the zone name // Check that bogus data fails tz = splitTZString( QString() ); QCOMPARE( tz.first, QString() ); - tz = splitTZString( QStringLiteral("America.NewYork") ); + tz = splitTZString( QStringLiteral( "America.NewYork" ) ); QCOMPARE( tz.first, QString() ); // Check that three-level is split properly and space is replaced - tz = splitTZString( QStringLiteral("America/North Dakota/Beulah") ); - QCOMPARE( tz.first, QStringLiteral("America") ); - QCOMPARE( tz.second, QStringLiteral("North_Dakota/Beulah") ); + tz = splitTZString( QStringLiteral( "America/North Dakota/Beulah" ) ); + QCOMPARE( tz.first, QStringLiteral( "America" ) ); + QCOMPARE( tz.second, QStringLiteral( "North_Dakota/Beulah" ) ); } @@ -217,19 +215,20 @@ synchronous_get( const char* urlstring ) return reply->readAll(); } -#define CHECK_GET(t, selector, url) \ +#define CHECK_GET( t, selector, url ) \ { \ auto tz = GeoIP##t( selector ).processReply( synchronous_get( url ) ); \ qDebug() << tz; \ QCOMPARE( default_tz, tz ); \ - auto tz2 = CalamaresUtils::GeoIP::Handler( ""#t, url, selector ).get(); \ + auto tz2 = CalamaresUtils::GeoIP::Handler( "" #t, url, selector ).get(); \ qDebug() << tz2; \ QCOMPARE( default_tz, tz2 ); \ } -void GeoIPTests::testGet() +void +GeoIPTests::testGet() { - if ( !QProcessEnvironment::systemEnvironment().contains( QStringLiteral("TEST_HTTP_GET") ) ) + if ( !QProcessEnvironment::systemEnvironment().contains( QStringLiteral( "TEST_HTTP_GET" ) ) ) { qDebug() << "Skipping HTTP GET tests, set TEST_HTTP_GET environment variable to enable"; return; @@ -248,14 +247,14 @@ void GeoIPTests::testGet() // Each expansion of CHECK_GET does a synchronous GET, then checks that // the TZ data is the same as the default_tz; this is fragile if the // services don't agree on the location of where the test is run. - CHECK_GET( JSON, QString(), "https://geoip.kde.org/v1/calamares" ) // Check it's consistent - CHECK_GET( JSON, QStringLiteral("timezone"), "https://ipapi.co/json" ) // Different JSON - CHECK_GET( JSON, QStringLiteral("timezone"), "http://ip-api.com/json" ) + CHECK_GET( JSON, QString(), "https://geoip.kde.org/v1/calamares" ) // Check it's consistent + CHECK_GET( JSON, QStringLiteral( "timezone" ), "https://ipapi.co/json" ) // Different JSON + CHECK_GET( JSON, QStringLiteral( "timezone" ), "http://ip-api.com/json" ) - CHECK_GET( JSON, QStringLiteral("Location.TimeZone"), "https://geoip.kde.org/debug" ) // 2-level JSON + CHECK_GET( JSON, QStringLiteral( "Location.TimeZone" ), "https://geoip.kde.org/debug" ) // 2-level JSON #ifdef QT_XML_LIB CHECK_GET( XML, QString(), "http://geoip.ubuntu.com/lookup" ) // Ubiquity's XML format - CHECK_GET( XML, QString(), "https://geoip.kde.org/v1/ubiquity" ) // Temporary KDE service + CHECK_GET( XML, QString(), "https://geoip.kde.org/v1/ubiquity" ) // Temporary KDE service #endif } From 05bcf4e85335a85f8f8c670696e2b6bb76d44bba Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 13:14:14 +0200 Subject: [PATCH 17/26] Changes: document Coding Style application --- CHANGES | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGES b/CHANGES index 9879043dc..dbdcb3523 100644 --- a/CHANGES +++ b/CHANGES @@ -9,6 +9,11 @@ This release contains contributions from (alphabetically by first name): ## Core ## +- The Calamares standard coding style -- embodied in `ci/calamaresstyle` + has had a few updates and has now been consistently applied across + the core codebase (e.g. libcalamares, libcalamaresui, calamares, but + not the modules). + ## Modules ## From 47dbf9ab0c0adfbbca2bc16eed7aed94def269a8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 10:23:36 -0400 Subject: [PATCH 18/26] [libcalamares] Move 3rd party code to separate dir --- {src/libcalamaresui/utils => 3rdparty}/qjsonitem.cpp | 0 {src/libcalamaresui/utils => 3rdparty}/qjsonitem.h | 0 {src/libcalamaresui/utils => 3rdparty}/qjsonmodel.cpp | 0 {src/libcalamaresui/utils => 3rdparty}/qjsonmodel.h | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename {src/libcalamaresui/utils => 3rdparty}/qjsonitem.cpp (100%) rename {src/libcalamaresui/utils => 3rdparty}/qjsonitem.h (100%) rename {src/libcalamaresui/utils => 3rdparty}/qjsonmodel.cpp (100%) rename {src/libcalamaresui/utils => 3rdparty}/qjsonmodel.h (100%) diff --git a/src/libcalamaresui/utils/qjsonitem.cpp b/3rdparty/qjsonitem.cpp similarity index 100% rename from src/libcalamaresui/utils/qjsonitem.cpp rename to 3rdparty/qjsonitem.cpp diff --git a/src/libcalamaresui/utils/qjsonitem.h b/3rdparty/qjsonitem.h similarity index 100% rename from src/libcalamaresui/utils/qjsonitem.h rename to 3rdparty/qjsonitem.h diff --git a/src/libcalamaresui/utils/qjsonmodel.cpp b/3rdparty/qjsonmodel.cpp similarity index 100% rename from src/libcalamaresui/utils/qjsonmodel.cpp rename to 3rdparty/qjsonmodel.cpp diff --git a/src/libcalamaresui/utils/qjsonmodel.h b/3rdparty/qjsonmodel.h similarity index 100% rename from src/libcalamaresui/utils/qjsonmodel.h rename to 3rdparty/qjsonmodel.h From e7c66de4dff82cf47df836d84e9cba1aee21efb4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 10:24:18 -0400 Subject: [PATCH 19/26] [libcalamares] Move kdsingleapplicationguard to 3rdparty --- .../kdsingleapplicationguard/LICENSE.LGPL.txt | 0 .../kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp | 0 .../kdsingleapplicationguard/kdlockedsharedmemorypointer.h | 0 .../kdsingleapplicationguard/kdsharedmemorylocker.cpp | 0 .../kdsingleapplicationguard/kdsharedmemorylocker.h | 0 .../kdsingleapplicationguard/kdsingleapplicationguard.cpp | 0 .../kdsingleapplicationguard/kdsingleapplicationguard.h | 0 .../kdsingleapplicationguard/kdtoolsglobal.cpp | 0 .../kdsingleapplicationguard/kdtoolsglobal.h | 0 .../kdsingleapplicationguard/pimpl_ptr.cpp | 0 .../kdsingleapplicationguard/pimpl_ptr.h | 0 11 files changed, 0 insertions(+), 0 deletions(-) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/LICENSE.LGPL.txt (100%) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp (100%) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/kdlockedsharedmemorypointer.h (100%) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/kdsharedmemorylocker.cpp (100%) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/kdsharedmemorylocker.h (100%) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/kdsingleapplicationguard.cpp (100%) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/kdsingleapplicationguard.h (100%) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/kdtoolsglobal.cpp (100%) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/kdtoolsglobal.h (100%) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/pimpl_ptr.cpp (100%) rename {src/libcalamares => 3rdparty}/kdsingleapplicationguard/pimpl_ptr.h (100%) diff --git a/src/libcalamares/kdsingleapplicationguard/LICENSE.LGPL.txt b/3rdparty/kdsingleapplicationguard/LICENSE.LGPL.txt similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/LICENSE.LGPL.txt rename to 3rdparty/kdsingleapplicationguard/LICENSE.LGPL.txt diff --git a/src/libcalamares/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp b/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp rename to 3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp diff --git a/src/libcalamares/kdsingleapplicationguard/kdlockedsharedmemorypointer.h b/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.h similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/kdlockedsharedmemorypointer.h rename to 3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.h diff --git a/src/libcalamares/kdsingleapplicationguard/kdsharedmemorylocker.cpp b/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/kdsharedmemorylocker.cpp rename to 3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp diff --git a/src/libcalamares/kdsingleapplicationguard/kdsharedmemorylocker.h b/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/kdsharedmemorylocker.h rename to 3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h diff --git a/src/libcalamares/kdsingleapplicationguard/kdsingleapplicationguard.cpp b/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.cpp similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/kdsingleapplicationguard.cpp rename to 3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.cpp diff --git a/src/libcalamares/kdsingleapplicationguard/kdsingleapplicationguard.h b/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/kdsingleapplicationguard.h rename to 3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h diff --git a/src/libcalamares/kdsingleapplicationguard/kdtoolsglobal.cpp b/3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/kdtoolsglobal.cpp rename to 3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp diff --git a/src/libcalamares/kdsingleapplicationguard/kdtoolsglobal.h b/3rdparty/kdsingleapplicationguard/kdtoolsglobal.h similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/kdtoolsglobal.h rename to 3rdparty/kdsingleapplicationguard/kdtoolsglobal.h diff --git a/src/libcalamares/kdsingleapplicationguard/pimpl_ptr.cpp b/3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/pimpl_ptr.cpp rename to 3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp diff --git a/src/libcalamares/kdsingleapplicationguard/pimpl_ptr.h b/3rdparty/kdsingleapplicationguard/pimpl_ptr.h similarity index 100% rename from src/libcalamares/kdsingleapplicationguard/pimpl_ptr.h rename to 3rdparty/kdsingleapplicationguard/pimpl_ptr.h From 937ff608ebc7ab74f3c5a6a17e8849cc6e1b7c9a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 10:27:52 -0400 Subject: [PATCH 20/26] [libcalamaresui] Move spinner widget to 3rd party --- {src/libcalamaresui/widgets => 3rdparty}/waitingspinnerwidget.cpp | 0 {src/libcalamaresui/widgets => 3rdparty}/waitingspinnerwidget.h | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {src/libcalamaresui/widgets => 3rdparty}/waitingspinnerwidget.cpp (100%) rename {src/libcalamaresui/widgets => 3rdparty}/waitingspinnerwidget.h (100%) diff --git a/src/libcalamaresui/widgets/waitingspinnerwidget.cpp b/3rdparty/waitingspinnerwidget.cpp similarity index 100% rename from src/libcalamaresui/widgets/waitingspinnerwidget.cpp rename to 3rdparty/waitingspinnerwidget.cpp diff --git a/src/libcalamaresui/widgets/waitingspinnerwidget.h b/3rdparty/waitingspinnerwidget.h similarity index 100% rename from src/libcalamaresui/widgets/waitingspinnerwidget.h rename to 3rdparty/waitingspinnerwidget.h From 315c0aca1563b31c7da2ae976a8bf09713050342 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 10:29:21 -0400 Subject: [PATCH 21/26] [3rdparty] Not actually part of Calamares --- 3rdparty/qjsonitem.cpp | 3 +-- 3rdparty/qjsonitem.h | 3 +-- 3rdparty/qjsonmodel.cpp | 3 +-- 3rdparty/qjsonmodel.h | 3 +-- 3rdparty/waitingspinnerwidget.cpp | 3 +-- 3rdparty/waitingspinnerwidget.h | 3 +-- 6 files changed, 6 insertions(+), 12 deletions(-) diff --git a/3rdparty/qjsonitem.cpp b/3rdparty/qjsonitem.cpp index cdc4b3b13..6bb1fa4c7 100644 --- a/3rdparty/qjsonitem.cpp +++ b/3rdparty/qjsonitem.cpp @@ -1,5 +1,4 @@ -/* === This file is part of Calamares - === - * +/* * SPDX-License-Identifier: GPL-3.0+ * License-Filename: LICENSES/GPLv3+-QJsonModel */ diff --git a/3rdparty/qjsonitem.h b/3rdparty/qjsonitem.h index 113c9da97..137c59000 100644 --- a/3rdparty/qjsonitem.h +++ b/3rdparty/qjsonitem.h @@ -1,5 +1,4 @@ -/* === This file is part of Calamares - === - * +/* * SPDX-License-Identifier: GPL-3.0+ * License-Filename: LICENSES/GPLv3+-QJsonModel */ diff --git a/3rdparty/qjsonmodel.cpp b/3rdparty/qjsonmodel.cpp index 4238bfd6b..020d27e42 100644 --- a/3rdparty/qjsonmodel.cpp +++ b/3rdparty/qjsonmodel.cpp @@ -1,5 +1,4 @@ -/* === This file is part of Calamares - === - * +/* * SPDX-License-Identifier: GPL-3.0+ * License-Filename: LICENSES/GPLv3+-QJsonModel */ diff --git a/3rdparty/qjsonmodel.h b/3rdparty/qjsonmodel.h index fc2c4abe1..32c062ba8 100644 --- a/3rdparty/qjsonmodel.h +++ b/3rdparty/qjsonmodel.h @@ -1,5 +1,4 @@ -/* === This file is part of Calamares - === - * +/* * SPDX-License-Identifier: GPL-3.0+ * License-Filename: LICENSES/GPLv3+-QJsonModel */ diff --git a/3rdparty/waitingspinnerwidget.cpp b/3rdparty/waitingspinnerwidget.cpp index 317d83807..45c689019 100644 --- a/3rdparty/waitingspinnerwidget.cpp +++ b/3rdparty/waitingspinnerwidget.cpp @@ -1,5 +1,4 @@ -/* === This file is part of Calamares - === - * +/* * SPDX-License-Identifier: MIT * License-Filename: LICENSES/MIT-QtWaitingSpinner */ diff --git a/3rdparty/waitingspinnerwidget.h b/3rdparty/waitingspinnerwidget.h index d71976ef8..b3e8df9a0 100644 --- a/3rdparty/waitingspinnerwidget.h +++ b/3rdparty/waitingspinnerwidget.h @@ -1,5 +1,4 @@ -/* === This file is part of Calamares - === - * +/* * SPDX-License-Identifier: MIT * License-Filename: LICENSES/MIT-QtWaitingSpinner */ From 8050b5d1da405c80910aa5a13781856b14dace2f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 10:37:02 -0400 Subject: [PATCH 22/26] [3rdparty] Add License information for kdsingleapplicationguard --- .../kdlockedsharedmemorypointer.cpp | 6 + .../kdlockedsharedmemorypointer.h | 8 +- .../kdsharedmemorylocker.cpp | 6 + .../kdsharedmemorylocker.h | 6 + .../kdsingleapplicationguard.cpp | 6 + .../kdsingleapplicationguard.h | 6 + .../kdtoolsglobal.cpp | 6 + .../kdsingleapplicationguard/kdtoolsglobal.h | 6 + .../kdsingleapplicationguard/pimpl_ptr.cpp | 14 +- 3rdparty/kdsingleapplicationguard/pimpl_ptr.h | 6 + LICENSES/LGPLv2-KDAB | 488 ++++++++++++++++++ 11 files changed, 553 insertions(+), 5 deletions(-) create mode 100644 LICENSES/LGPLv2-KDAB diff --git a/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp b/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp index 56ab8ebe4..77e95e649 100644 --- a/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp +++ b/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp @@ -1,3 +1,9 @@ +/* + * SPDX-License-Identifier: LGPL-2.0-only + * License-Filename: LICENSES/LGPLv2-KDAB + * + * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + */ #include "kdlockedsharedmemorypointer.h" #if QT_VERSION >= 0x040400 || defined( DOXYGEN_RUN ) diff --git a/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.h b/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.h index df0ea4998..b9c5d588f 100644 --- a/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.h +++ b/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.h @@ -1,3 +1,9 @@ +/* + * SPDX-License-Identifier: LGPL-2.0-only + * License-Filename: LICENSES/LGPLv2-KDAB + * + * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + */ #ifndef __KDTOOLS__CORE__KDLOCKEDSHAREDMEMORYPOINTER_H__ #define __KDTOOLS__CORE__KDLOCKEDSHAREDMEMORYPOINTER_H__ @@ -74,7 +80,7 @@ public: typedef const T* const_iterator; typedef std::reverse_iterator< const_iterator > const_reverse_iterator; typedef std::reverse_iterator< iterator > reverse_iterator; - + iterator begin() { return get(); } const_iterator begin() const { return get(); } diff --git a/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp b/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp index 0c99b8fff..a13a45a27 100644 --- a/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp +++ b/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp @@ -1,3 +1,9 @@ +/* + * SPDX-License-Identifier: LGPL-2.0-only + * License-Filename: LICENSES/LGPLv2-KDAB + * + * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + */ #include "kdsharedmemorylocker.h" #if QT_VERSION >= 0x040400 || defined( DOXYGEN_RUN ) diff --git a/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h b/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h index 7ae83e771..82b759283 100644 --- a/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h +++ b/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h @@ -1,3 +1,9 @@ +/* + * SPDX-License-Identifier: LGPL-2.0-only + * License-Filename: LICENSES/LGPLv2-KDAB + * + * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + */ #ifndef __KDTOOLS__CORE__KDSHAREDMEMORYLOCKER_H #define __KDTOOLS__CORE__KDSHAREDMEMORYLOCKER_H diff --git a/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.cpp b/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.cpp index ea8ccce33..4c13e1da0 100644 --- a/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.cpp +++ b/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.cpp @@ -1,3 +1,9 @@ +/* + * SPDX-License-Identifier: LGPL-2.0-only + * License-Filename: LICENSES/LGPLv2-KDAB + * + * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + */ #include "kdsingleapplicationguard.h" #if QT_VERSION >= 0x040400 || defined(DOXYGEN_RUN) diff --git a/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h b/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h index d529fdb3e..8ac411a68 100644 --- a/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h +++ b/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h @@ -1,3 +1,9 @@ +/* + * SPDX-License-Identifier: LGPL-2.0-only + * License-Filename: LICENSES/LGPLv2-KDAB + * + * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + */ #ifndef KDTOOLSCORE_KDSINGLEAPPLICATIONGUARD_H #define KDTOOLSCORE_KDSINGLEAPPLICATIONGUARD_H diff --git a/3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp b/3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp index f530cc85b..d3405e82f 100644 --- a/3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp +++ b/3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp @@ -1,3 +1,9 @@ +/* + * SPDX-License-Identifier: LGPL-2.0-only + * License-Filename: LICENSES/LGPLv2-KDAB + * + * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + */ #include "kdtoolsglobal.h" #include diff --git a/3rdparty/kdsingleapplicationguard/kdtoolsglobal.h b/3rdparty/kdsingleapplicationguard/kdtoolsglobal.h index c0e37ac76..37ca5857e 100644 --- a/3rdparty/kdsingleapplicationguard/kdtoolsglobal.h +++ b/3rdparty/kdsingleapplicationguard/kdtoolsglobal.h @@ -1,3 +1,9 @@ +/* + * SPDX-License-Identifier: LGPL-2.0-only + * License-Filename: LICENSES/LGPLv2-KDAB + * + * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + */ #ifndef KDTOOLS_KDTOOLSGLOBAL_H #define KDTOOLS_KDTOOLSGLOBAL_H diff --git a/3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp b/3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp index 3045ebc2a..35b52d419 100644 --- a/3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp +++ b/3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp @@ -1,3 +1,9 @@ +/* + * SPDX-License-Identifier: LGPL-2.0-only + * License-Filename: LICENSES/LGPLv2-KDAB + * + * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + */ #include "pimpl_ptr.h" /*! @@ -9,7 +15,7 @@ (The exception safety of this class has not been evaluated yet.) pimpl_ptr is a smart immutable pointer, which owns the contained object. Unlike other smart pointers, - it creates a standard constructed object when instanciated via the + it creates a standard constructed object when instanciated via the \link pimpl_ptr() standard constructor\endlink. Additionally, pimpl_ptr respects constness of the pointer object and returns \c const \c T* for a const pimpl_ptr object. @@ -126,7 +132,7 @@ */ /*! - \fn T * pimpl_ptr::operator->() + \fn T * pimpl_ptr::operator->() Member-by-pointer operator. Returns get(). */ @@ -163,7 +169,7 @@ KDAB_UNITTEST_SIMPLE( pimpl_ptr, "kdcoretools" ) { } - { + { QPointer< QObject > o; { kdtools::pimpl_ptr< QObject > qobject( new QObject ); @@ -174,7 +180,7 @@ KDAB_UNITTEST_SIMPLE( pimpl_ptr, "kdcoretools" ) { assertNull( o ); } - { + { const kdtools::pimpl_ptr< QObject > qobject( new QObject ); const QObject* o = qobject.get(); assertEqual( o, qobject.operator->() ); diff --git a/3rdparty/kdsingleapplicationguard/pimpl_ptr.h b/3rdparty/kdsingleapplicationguard/pimpl_ptr.h index b66bd11a2..41b33b582 100644 --- a/3rdparty/kdsingleapplicationguard/pimpl_ptr.h +++ b/3rdparty/kdsingleapplicationguard/pimpl_ptr.h @@ -1,3 +1,9 @@ +/* + * SPDX-License-Identifier: LGPL-2.0-only + * License-Filename: LICENSES/LGPLv2-KDAB + * + * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + */ #ifndef KDTOOLSCORE_PIMPL_PTR_H #define KDTOOLSCORE_PIMPL_PTR_H diff --git a/LICENSES/LGPLv2-KDAB b/LICENSES/LGPLv2-KDAB new file mode 100644 index 000000000..df942b1ff --- /dev/null +++ b/LICENSES/LGPLv2-KDAB @@ -0,0 +1,488 @@ + + The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. + + You may use, distribute and copy the KD Tools Library under the terms of + GNU Library General Public License version 2, which is displayed below. + +------------------------------------------------------------------------- + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! From 2166eb45116d66020fe1d999ed863ca646e4b2b5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 10:47:14 -0400 Subject: [PATCH 23/26] [libcalamares] [libcalamaresui] Adjust for moved sources --- src/libcalamares/CMakeLists.txt | 6 +++++- src/libcalamaresui/CMakeLists.txt | 13 ++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index 0aca79233..790d4b6ac 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -51,12 +51,16 @@ set( libSources utils/Variant.cpp utils/Yaml.cpp ) -set( kdsagSources +set( _kdsagSources kdsingleapplicationguard/kdsingleapplicationguard.cpp kdsingleapplicationguard/kdsharedmemorylocker.cpp kdsingleapplicationguard/kdtoolsglobal.cpp kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp ) +set( kdsagSources "" ) +foreach( _s ${_kdsagSources} ) + list( APPEND kdsagSources ${CMAKE_SOURCE_DIR}/3rdparty/${_s} ) +endforeach() mark_thirdparty_code( ${kdsagSources} ) include_directories( diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 703a8bbe1..f5389069d 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -18,16 +18,16 @@ set( calamaresui_SOURCES utils/ImageRegistry.cpp utils/Paste.cpp - utils/qjsonmodel.cpp - utils/qjsonitem.cpp + ${CMAKE_SOURCE_DIR}/3rdparty/qjsonmodel.cpp + ${CMAKE_SOURCE_DIR}/3rdparty/qjsonitem.cpp viewpages/BlankViewStep.cpp viewpages/ViewStep.cpp widgets/ClickableLabel.cpp widgets/FixedAspectRatioLabel.cpp - widgets/waitingspinnerwidget.cpp widgets/WaitingWidget.cpp + ${CMAKE_SOURCE_DIR}/3rdparty/waitingspinnerwidget.cpp ExecutionViewStep.cpp Branding.cpp @@ -36,10 +36,9 @@ set( calamaresui_SOURCES # Don't warn about third-party sources mark_thirdparty_code( - utils/ImageRegistry.cpp - utils/qjsonitem.cpp - utils/qjsonmodel.cpp - widgets/waitingspinnerwidget.cpp + ${CMAKE_SOURCE_DIR}/3rdparty/qjsonitem.cpp + ${CMAKE_SOURCE_DIR}/3rdparty/qjsonmodel.cpp + ${CMAKE_SOURCE_DIR}/3rdparty/waitingspinnerwidget.cpp ) set( calamaresui_UI From c83e95e66a47fa798916a110e98d16ab3bc3bf5b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 12:42:02 -0400 Subject: [PATCH 24/26] [libcalamaresui] Chase 3rdparty move - Widgets need to #include from different path --- src/libcalamaresui/CMakeLists.txt | 2 +- src/libcalamaresui/utils/DebugWindow.cpp | 5 +++-- src/libcalamaresui/widgets/WaitingWidget.cpp | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index f5389069d..04565206e 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -2,7 +2,7 @@ # view modules, view steps, widgets, and branding. # The UI libs use the non-UI library -include_directories( ${CMAKE_SOURCE_DIR}/src/libcalamares ${CMAKE_BINARY_DIR}/src/libcalamares ) +include_directories( ${CMAKE_SOURCE_DIR}/src/libcalamares ${CMAKE_BINARY_DIR}/src/libcalamares ${CMAKE_SOURCE_DIR} ) set( calamaresui_SOURCES modulesystem/CppJobModule.cpp diff --git a/src/libcalamaresui/utils/DebugWindow.cpp b/src/libcalamaresui/utils/DebugWindow.cpp index ed016dd97..094511be4 100644 --- a/src/libcalamaresui/utils/DebugWindow.cpp +++ b/src/libcalamaresui/utils/DebugWindow.cpp @@ -23,7 +23,6 @@ #include "Branding.h" #include "modulesystem/Module.h" #include "modulesystem/ModuleManager.h" -#include "utils/qjsonmodel.h" #include "GlobalStorage.h" #include "Job.h" @@ -31,11 +30,13 @@ #include "utils/Logger.h" #include "utils/Retranslator.h" +#include "3rdparty/qjsonmodel.h" #ifdef WITH_PYTHONQT -#include #include "ViewManager.h" #include "viewpages/PythonQtViewStep.h" + +#include #endif #include diff --git a/src/libcalamaresui/widgets/WaitingWidget.cpp b/src/libcalamaresui/widgets/WaitingWidget.cpp index 286c611ab..1a658b35b 100644 --- a/src/libcalamaresui/widgets/WaitingWidget.cpp +++ b/src/libcalamaresui/widgets/WaitingWidget.cpp @@ -20,7 +20,8 @@ #include "WaitingWidget.h" #include "utils/CalamaresUtilsGui.h" -#include "waitingspinnerwidget.h" + +#include "3rdparty/waitingspinnerwidget.h" #include #include From b31c6c3a22801e189080929625e00750db720e13 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 12:42:33 -0400 Subject: [PATCH 25/26] [calamares] Chase 3rdparty move --- src/calamares/CMakeLists.txt | 5 +++-- src/calamares/main.cpp | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index 5159916e8..5dbf137bb 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -17,8 +17,9 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/../libcalamares - ../libcalamares - ../libcalamaresui + ${CMAKE_SOURCE_DIR}/src/libcalamares + ${CMAKE_SOURCE_DIR}/src//libcalamaresui + ${CMAKE_SOURCE_DIR} ) # Translations diff --git a/src/calamares/main.cpp b/src/calamares/main.cpp index d463b789d..704c2bf59 100644 --- a/src/calamares/main.cpp +++ b/src/calamares/main.cpp @@ -21,10 +21,11 @@ #include "CalamaresApplication.h" #include "CalamaresConfig.h" -#include "kdsingleapplicationguard/kdsingleapplicationguard.h" #include "utils/Dirs.h" #include "utils/Logger.h" +#include "3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h" + #ifdef WITH_KF5Crash #include #include From 48a25858f0d08849449754c4dfcc231cdf8e89f2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Aug 2019 12:42:47 -0400 Subject: [PATCH 26/26] [partition] Chase 3rdparty move --- src/modules/partition/CMakeLists.txt | 2 ++ src/modules/partition/gui/ScanningDialog.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/partition/CMakeLists.txt b/src/modules/partition/CMakeLists.txt index 61953c249..df1588cb2 100644 --- a/src/modules/partition/CMakeLists.txt +++ b/src/modules/partition/CMakeLists.txt @@ -5,6 +5,8 @@ option( DEBUG_PARTITION_UNSAFE "Allow unsafe partitioning choices." OFF ) option( DEBUG_PARTITION_LAME "Unsafe partitioning will error out on exec." ON ) +include_directories( ${CMAKE_SOURCE_DIR} ) # For 3rdparty + set( _partition_defs ) if( DEBUG_PARTITION_UNSAFE ) if( DEBUG_PARTITION_LAME ) diff --git a/src/modules/partition/gui/ScanningDialog.cpp b/src/modules/partition/gui/ScanningDialog.cpp index 9084be2cc..85479fbb3 100644 --- a/src/modules/partition/gui/ScanningDialog.cpp +++ b/src/modules/partition/gui/ScanningDialog.cpp @@ -19,7 +19,7 @@ #include "ScanningDialog.h" -#include "widgets/waitingspinnerwidget.h" +#include "3rdparty/waitingspinnerwidget.h" #include #include