From 2b86d2481c8f17c4b5ef8dffd240868cb80ae405 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 20 Aug 2020 22:28:52 +0200 Subject: [PATCH 01/54] [libcalamares] finish() is a private implementation detail for the job queue --- src/libcalamares/JobQueue.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/libcalamares/JobQueue.h b/src/libcalamares/JobQueue.h index 31b5407ef..278d50d44 100644 --- a/src/libcalamares/JobQueue.h +++ b/src/libcalamares/JobQueue.h @@ -50,20 +50,25 @@ public: * of the module. */ void enqueue( int moduleWeight, const JobList& jobs ); + /** @brief Starts all the jobs that are enqueued. + * + * After this, isRunning() returns @c true until + * finished() is emitted. + */ void start(); bool isRunning() const { return !m_finished; } -public slots: - void finish(); - signals: void queueChanged( const JobList& jobs ); + void progress( qreal percent, const QString& prettyName ); void finished(); void failed( const QString& message, const QString& details ); private: + void finish(); + static JobQueue* s_instance; JobThread* m_thread; From 42417ed3b2c633c4f1dc514c4e5c77f8f74c07ef Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 20 Aug 2020 22:30:12 +0200 Subject: [PATCH 02/54] [libcalamares] Rip out the broken jobqueue information signals (break build) --- src/libcalamares/JobQueue.cpp | 1 - src/libcalamares/JobQueue.h | 2 -- 2 files changed, 3 deletions(-) diff --git a/src/libcalamares/JobQueue.cpp b/src/libcalamares/JobQueue.cpp index b39b43759..64c73434e 100644 --- a/src/libcalamares/JobQueue.cpp +++ b/src/libcalamares/JobQueue.cpp @@ -242,7 +242,6 @@ JobQueue::enqueue( int moduleWeight, const JobList& jobs ) { Q_ASSERT( !m_thread->isRunning() ); m_thread->enqueue( moduleWeight, jobs ); - emit queueChanged( jobs ); // FIXME: bogus } void diff --git a/src/libcalamares/JobQueue.h b/src/libcalamares/JobQueue.h index 278d50d44..23977b78f 100644 --- a/src/libcalamares/JobQueue.h +++ b/src/libcalamares/JobQueue.h @@ -60,8 +60,6 @@ public: bool isRunning() const { return !m_finished; } signals: - void queueChanged( const JobList& jobs ); - void progress( qreal percent, const QString& prettyName ); void finished(); void failed( const QString& message, const QString& details ); From 4a45eb847d420be9cfd88453a904cf333ee36471 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 Aug 2020 23:43:15 +0200 Subject: [PATCH 03/54] CI: fix edge cases for calamaresstyle - no format-10 - skip empty directories (otherwise astyle gets no file-paramaters and then hangs on stdin) --- ci/calamaresstyle | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ci/calamaresstyle b/ci/calamaresstyle index 44f9fe91f..19f4a152a 100755 --- a/ci/calamaresstyle +++ b/ci/calamaresstyle @@ -1,7 +1,12 @@ #!/bin/sh # # Calls astyle with settings matching Calamares coding style -# Requires astyle >= 2.04 and clang-format-7 +# Requires astyle >= 2.04 and clang-format-7 -8 or -9 +# +# Clang-format-10 is **not** supported, since it changes a default +# that re-introduces a space into empty function bodies; this +# can be turned off with a style setting, but that breaks +# older format versions which don't recognize the setting. # # You can pass in directory names, in which case the files # in that directory (NOT below it) are processed. @@ -38,8 +43,10 @@ done style_some() { - $AS --options=$(dirname $0)/astylerc --quiet "$@" - $CF -i -style=file "$@" + if test -n "$*" ; then + $AS --options=$(dirname $0)/astylerc --quiet "$@" + $CF -i -style=file "$@" + fi } if test "x$any_dirs" = "xyes" ; then From 2609e0589808154a93a5eeb09fc0b8e297170423 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 21 Aug 2020 22:29:03 +0200 Subject: [PATCH 04/54] CMake: remove unused module --- CMakeModules/IncludeKPMCore.cmake | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 CMakeModules/IncludeKPMCore.cmake diff --git a/CMakeModules/IncludeKPMCore.cmake b/CMakeModules/IncludeKPMCore.cmake deleted file mode 100644 index 4b4b8b3f2..000000000 --- a/CMakeModules/IncludeKPMCore.cmake +++ /dev/null @@ -1,17 +0,0 @@ -# Shared CMake core for finding KPMCore -# -# This is wrapped into a CMake include file because there's a bunch of -# pre-requisites that need searching for before looking for KPMCore. -# If you just do find_package( KPMCore ) without finding the things -# it links against first, you get CMake errors. -# -# -find_package(ECM 5.10.0 REQUIRED NO_MODULE) -set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH}) - -include(KDEInstallDirs) -include(GenerateExportHeader) -find_package( KF5 REQUIRED CoreAddons ) -find_package( KF5 REQUIRED Config I18n Service WidgetsAddons ) - -find_package( KPMcore 3.2 REQUIRED ) From 31aa8be620e1b2df7add869bbb8c5feeb52623b8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 21 Aug 2020 19:36:02 +0200 Subject: [PATCH 05/54] [locale] Remove unused original images - These haven't been used in the module, and just take up space and now add licensing annoyance as well --- src/modules/locale/images/orig/bg.png | Bin 177324 -> 0 bytes .../locale/images/orig/timezone_-1.0.png | Bin 8012 -> 0 bytes .../locale/images/orig/timezone_-10.0.png | Bin 7783 -> 0 bytes .../locale/images/orig/timezone_-11.0.png | Bin 7406 -> 0 bytes .../locale/images/orig/timezone_-2.0.png | Bin 4333 -> 0 bytes .../locale/images/orig/timezone_-3.0.png | Bin 13615 -> 0 bytes .../locale/images/orig/timezone_-3.5.png | Bin 740 -> 0 bytes .../locale/images/orig/timezone_-4.0.png | Bin 15084 -> 0 bytes .../locale/images/orig/timezone_-4.5.png | Bin 1900 -> 0 bytes .../locale/images/orig/timezone_-5.0.png | Bin 19166 -> 0 bytes .../locale/images/orig/timezone_-5.5.png | Bin 437 -> 0 bytes .../locale/images/orig/timezone_-6.0.png | Bin 13764 -> 0 bytes .../locale/images/orig/timezone_-7.0.png | Bin 11977 -> 0 bytes .../locale/images/orig/timezone_-8.0.png | Bin 6801 -> 0 bytes .../locale/images/orig/timezone_-9.0.png | Bin 7908 -> 0 bytes .../locale/images/orig/timezone_-9.5.png | Bin 437 -> 0 bytes .../locale/images/orig/timezone_0.0.png | Bin 11074 -> 0 bytes .../locale/images/orig/timezone_1.0.png | Bin 15458 -> 0 bytes .../locale/images/orig/timezone_10.0.png | Bin 12829 -> 0 bytes .../locale/images/orig/timezone_10.5.png | Bin 421 -> 0 bytes .../locale/images/orig/timezone_11.0.png | Bin 12113 -> 0 bytes .../locale/images/orig/timezone_11.5.png | Bin 446 -> 0 bytes .../locale/images/orig/timezone_12.0.png | Bin 7130 -> 0 bytes .../locale/images/orig/timezone_12.75.png | Bin 409 -> 0 bytes .../locale/images/orig/timezone_13.0.png | Bin 621 -> 0 bytes .../locale/images/orig/timezone_2.0.png | Bin 12854 -> 0 bytes .../locale/images/orig/timezone_3.0.png | Bin 17475 -> 0 bytes .../locale/images/orig/timezone_3.5.png | Bin 2142 -> 0 bytes .../locale/images/orig/timezone_4.0.png | Bin 4954 -> 0 bytes .../locale/images/orig/timezone_4.5.png | Bin 1773 -> 0 bytes .../locale/images/orig/timezone_5.0.png | Bin 14539 -> 0 bytes .../locale/images/orig/timezone_5.5.png | Bin 6099 -> 0 bytes .../locale/images/orig/timezone_5.75.png | Bin 2885 -> 0 bytes .../locale/images/orig/timezone_6.0.png | Bin 8441 -> 0 bytes .../locale/images/orig/timezone_6.5.png | Bin 1609 -> 0 bytes .../locale/images/orig/timezone_7.0.png | Bin 14412 -> 0 bytes .../locale/images/orig/timezone_8.0.png | Bin 16725 -> 0 bytes .../locale/images/orig/timezone_9.0.png | Bin 12608 -> 0 bytes .../locale/images/orig/timezone_9.5.png | Bin 1959 -> 0 bytes 39 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/modules/locale/images/orig/bg.png delete mode 100644 src/modules/locale/images/orig/timezone_-1.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-10.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-11.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-2.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-3.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-3.5.png delete mode 100644 src/modules/locale/images/orig/timezone_-4.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-4.5.png delete mode 100644 src/modules/locale/images/orig/timezone_-5.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-5.5.png delete mode 100644 src/modules/locale/images/orig/timezone_-6.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-7.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-8.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-9.0.png delete mode 100644 src/modules/locale/images/orig/timezone_-9.5.png delete mode 100644 src/modules/locale/images/orig/timezone_0.0.png delete mode 100644 src/modules/locale/images/orig/timezone_1.0.png delete mode 100644 src/modules/locale/images/orig/timezone_10.0.png delete mode 100644 src/modules/locale/images/orig/timezone_10.5.png delete mode 100644 src/modules/locale/images/orig/timezone_11.0.png delete mode 100644 src/modules/locale/images/orig/timezone_11.5.png delete mode 100644 src/modules/locale/images/orig/timezone_12.0.png delete mode 100644 src/modules/locale/images/orig/timezone_12.75.png delete mode 100644 src/modules/locale/images/orig/timezone_13.0.png delete mode 100644 src/modules/locale/images/orig/timezone_2.0.png delete mode 100644 src/modules/locale/images/orig/timezone_3.0.png delete mode 100644 src/modules/locale/images/orig/timezone_3.5.png delete mode 100644 src/modules/locale/images/orig/timezone_4.0.png delete mode 100644 src/modules/locale/images/orig/timezone_4.5.png delete mode 100644 src/modules/locale/images/orig/timezone_5.0.png delete mode 100644 src/modules/locale/images/orig/timezone_5.5.png delete mode 100644 src/modules/locale/images/orig/timezone_5.75.png delete mode 100644 src/modules/locale/images/orig/timezone_6.0.png delete mode 100644 src/modules/locale/images/orig/timezone_6.5.png delete mode 100644 src/modules/locale/images/orig/timezone_7.0.png delete mode 100644 src/modules/locale/images/orig/timezone_8.0.png delete mode 100644 src/modules/locale/images/orig/timezone_9.0.png delete mode 100644 src/modules/locale/images/orig/timezone_9.5.png diff --git a/src/modules/locale/images/orig/bg.png b/src/modules/locale/images/orig/bg.png deleted file mode 100644 index d7479bf9692fd966253ec90c50d46e1e8df223cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177324 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 z 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

$XaZHn=k2VHAV`$ux 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

YKqG0mA|ndXZW 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

  • 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 SN8uI${!x}!m#dNihyFjNFJd16 diff --git a/src/modules/locale/images/orig/timezone_-1.0.png b/src/modules/locale/images/orig/timezone_-1.0.png deleted file mode 100644 index fb00d83c566412badd7a6e4776f3a1f2fd4cee17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8012 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 G-2Wfd9=AvU diff --git a/src/modules/locale/images/orig/timezone_-10.0.png b/src/modules/locale/images/orig/timezone_-10.0.png deleted file mode 100644 index 472eb888aab6a16941bd3fbbf3a48bdb49429d1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7783 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 WLzC2^W2Jx#Ajop`!N)bsqK5;G8la6<-V?@R*o$ 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 g$0o#6A(r+KCZgpuW8N-F0AxsAoIof_hkn`eWx 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 b1micP6n`%AO7khlNFFLbQYuz_@%DcJL}K43 diff --git a/src/modules/locale/images/orig/timezone_11.5.png b/src/modules/locale/images/orig/timezone_11.5.png deleted file mode 100644 index afdedd7e0427e9ef5d0e86f973fa84b5b9b4bb18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV4TUq3>0Z*@i-5pn2Vh}LpV4%Za?&Y0OWEO zctjR6Ft9BGVMf=xhCl{`WQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E z1_3@HuK)l42QnEN7#Kns7>pShEE!}hWlFbtly3H@-Q(SIII!`6f7{W(rb7W8r-FLU zg|Y?dZ~)cwl?3?(GcYkRvvP74Ry5wa{qofrF%J)*%rj3H$B>F!Z?6UlIs{0xTztEr ziEaBKUWFzZqZbe6YK1s)8SkH2tW@)R11C`R00PfR3rz*JBEKaEEu8RnXSyg)lVe?y lt-gHF$s4;tUc>|DS1>l8E=Z diff --git a/src/modules/locale/images/orig/timezone_12.0.png b/src/modules/locale/images/orig/timezone_12.0.png deleted file mode 100644 index d0b35317ed0c66020bf8e1d00a57c78eba9fa180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7130 zcmeHLc~q0vwokPdlt-l(0hIzp1Bwb-nUv9j3K0+o5RinZ3<1L=0htL3g@S?-hDeam zAOvNU*)XaUFd_*AAq<9qC<#G`ObHMm@B7mA-t~6*?&|yhX05Ei`Ode`9)A0`_dZGI z&RWTC+r13}fylzFPhNmPHva^He3LEx9k6oafa4nQ^DV{#<{%AxqNF{31ODF{XzhZ5 zK)%Zdzu%l<{S5p8*%f@sIrw6LS8(XnAWukWXsC{lKN{nHHPBNhAPAK+YqA>xQFelz z{KX;c;S4K05W$QdoWrQ83RM0$y$K4rZTw5x9~g{oFnbrU?uE8E->0i9YYB zi}!5%sJ5twntkR+<&B9qA2ztx-|)3cnK@JC0n0jMbF}Q&nv>@=Pdv!Jai(JAUV&%<;C*Q;!Nq zu#0&utX4iHPN~sA-u)+Fliat`5QtnFmb@VIqXe-}7(8{#8P(mbTU+1b^x;r~h@^ zm#Xe8vcW1Pef9J&^#4MFttSkp7!ltUCi@%s*89Jwp6ylq+_u!M>F|ynUvslCrEN{9U z2$A%Q9}WS5+4DE0{xgbyLxulr{(1uZ)pfC2r8h=bCmF@N6n-U6T-XXE#e0vQ^vO9naU-&#{ zN*5?Zkn0H0K-IyrE0wsJaD>%gLIK-Fdde@;(|$tymm)*tp~ zreGR*#^sTp{}@FoMj8I`JwO5Q_M<}#_`>^*Bo* z@KCK4`6PFLPj{weoKV z;+gc>)Y^joM|yveegBeM{{i;j1NN8P`ehj)_>!amwl9IX*r5>|yH;^;{`;!lozwj_ zh>MEuxltgE-nW9CuX`3l;|=4AJ21ZzJ&y)`EAy3V^4Dbgzs{7Dp095{cg2Tbv(41< z5Xi=wgOOW0ZWpo}mpWWqH>?T^Md)iZhy9XA=R#%#SxfcUnJ$D3_StMMn@l3DaBr`Y zt1$;lB2hJ=W>GUQiF`JW{K#o0)w-@{GX(Oyzm!~FUsyf|XZD<9SF(&>UJMW$Y;BEt z-^MO2A2Oc^W9P@!m#=rAx(-??3tCz@?bWDB740{F$lJsMuYWt-ifXGP_0?jJ2VR>U z4;97u*7$fYzniKe_6yl7!(D#&vNAl|vPm>|s$+xHduc@o#P)Y6mAo&tY&fT@Kd-q* zKX;)XZXQ4-ji7mnXt&6fxO@9x1}VqgZ9%g5{rS!2DqkBNyp3Sy@{%nHmF+EAjy+Hk zs>ccz#UXWcOr7+@B1S7M=(@dNh2C*aQ}@C{ZCYm5j(Zu2f&Ij$RavX2fT-BBvWq`P zaizMkMn;!I4bmxR@=UNYU=nW0>eAotNu~}J_{`^R1sEg|`d^BNxhpTa{ZzIerhBAj zDn$^xJS8M>KTDu3qv%#Gw1oY`0?9`kW9MG+#Ua*5m7>C+cAdE42D}$>Hzs> zF1RiC-WoMIL>!3p|73ffkgBlwi@Y%iJd{Ge6c1lII9I6~H#8x|b{6I7W;5P}%`!(< zUL{lRxDBnnzQf!Yv*tHA)vxm=ghf-%IOr**^`X)YdF^O-cS=n~{dKXQaAPKKX=xyU zwc15rTMwJuwHX~r&s@5*?LE&ir;aDvYV`WyiL+Q zIScNm(FP;ehp^;3iCuT9DOK;;YwrTC8d!ia_~3%`z>L(#EWU_h@tO2!?ydF4`qm?X z*QlfqN7eFoas!5#%*gr739GEu&pqY_=5E|Pkpf`f5vu1=4NCgvuI+CAQSovwZ#C!C zsSY;!Ob75Y=~SJ(#GY@yY{X)<_zpKhy6aqg2nV_LpWL>AMqGSXtlTO}N(nVx+gIji zj&$a_=yX_e0paaSYB`mS`8?l+sf*g3+f2LKL9%@CUch%*dfziuyz%0qN~a94eC+lX zKn|Q3LjjmLq|G9rOEPDKKM@P`r&klZA5{j}@axC0u=!&C3&Q^pBvf)Wj zHT*6>=CN9{pKmD`-}DRE@VP;~GV#)r-E10P)3X=l24GA&-tf}l+O5LA>bV|rD36s(FXnUe|jO_d)5&({SX>Ij0JzwzRXKG>AAcuphIVsJO(zNUE1#o9s|R+>F}2eh^1 z&7gDFn7w!kgC%xpT>Y5B-eBF5*Ozh|8eZ@Qnr==dh#YtdZg@Po7$NJY(&@ibS%$J= zv;AH8s>d9uQ_OB%xsKbx*`}W*k@t3pM3Z+VHqB037L}aUp$LYAc_!yYr*R%KifZa$ zWS>Q7WG{ZcwRAX9?xpU%vgI7==bgXhjc166(5Ex@ZQ6m z(`^DeghZrtj*Kv}y6M$aC>+4>V zm$OE1pl3=w`{i$7LGL!%u|8$Cmvzlj4#IFv!rQ15KwC9z)3y?DCg5`L^qcC<&C?dr z_LCS5kP?ohgwVuu!?igrb5b7_B6;l9@bfoToNefclFN$hfo%E`=vQ0!lrky2LEZN{ zPy7ar7uNW%r-w1xrlA2kW&W>6au_NvHUVBaAd9;5{R}$7lRd4AJQh6GF$0^Yp?Ms* z6Qfdq3DtnjH|yE;&6R6`8WFDZ!{!NS=1fb4FonlS|DY77;J8`W4f`>*2nQ97^jPD1 zYPbS{?q;cq?dm3`qxydy!sCu_X^ap$nulKDKjbKBW9LE@k&O#2uX#)YtyRbM^6`O& z#aVqj8N=Fpp>`4z?Q)HcQCGU;k;`7v>K@hV7ajZ9dSO)}ZsYp0fBRipO~@20G^3xk zhD1q4(A}m8VAP~VH`xNXw0aXW$DG$VaH*zZV^9T#dxtHg$ARb=!$D!1elAf~9LlXx zNA-AZr=achSO^4yKjeDJbf9W+R(Ut44BJT;{K+futk>k(o?#3<7lzA#&$7Y!aI8xI z4Z=xZ7>#{)JiH#C*dzr8aP73`M|29>FnXO$n~DisibUW&k{MYVp~3V9!QO*9oDERF z<&;%&^NgKtqM{+)nT~+|bpD{xLf9R>7$Ft>tR8`(E zcJ{+~)g1&9?xwU`$+y7}h7+fer?~CqN&ps~yY9HBV)pE+=*cLafyXWvvAcII(%m)ewZ&E%3^!4xGu@oa&Q(L;KO3CIO|-2grU4t)_NknuY@c_?XpWI22xwhp_}$C>B=6$j0s4G_1IX5rGXW6K@dhtDoHNKz}QYCbx|#>p(mUI(AR ziJ7b9LrGDG1ph_+2H*^zYrV;de4pu0$i9K0R3LX6A}~7GKIp@h`G=P#f=XQ7H@t!0f2V*lj7sU&W^^6%ZSjX zGP!AEkm>tgjWPq)`+M7}g|b9qq#o>j#bL>27%o59JCHhV@rRXk>J@-3fIObW4b>;C~#()WG!mZ7bH&e}AdwbGKyt&+# zj8+x1=$b_?trICNA;+=ztM-RXpUw=82ITJc=GowUjm}R??191zSfW*x)`#2>llbrd z)<7?LPtwIUSrU}9?_ZJww0S=A1`#Y?l?~mPQDeT{i12FRYlGI;KPfZ+xrjUqclGS< zO^9L}=kS#Q)csr-&T_Es>-|6}iV=!G4b}A zB7514MWV@h@o6)Dq#4+TUfJgJu)d`X-KK>1Og=MTCjwe5z)aQfwN6Yc!6SJgg1s;V zVqa?y4Cf2XsR3o)+z0oqA8?nYe~AU0n(;Gdm0p_D8+{Q$;_Q^PZ5K~iGKUAqr|JHhbby=PB%y~JV}cNxeXa_a@`D;c+^*ox;Glg?%Yu;-f>HrLgmtUA-p{3R zDiR5&%;w}B(wQnt)n{jdkv{^f1?Fn~lm$Zr@5hz(O+f{k@z6KkF`fdCku85-T#VK8yeb|~UlzA3R~0(qgBN*GQUc$I z%F<6K`*=&@b)<&6lS76b(DOIst`HZ_NP+|df>aPbHu&Z_iR(hq zcJZE+n+fU?2Qid!+Z)uD;ro-@s&ub`NY+fM%Tz=39>eyP%Dq&WiD~ljD2Uo`XK9Ut zzTtIRbE*&n>fy)Tx zJ6-5b1pu1o5Rs+FSMcj8jQMk;1O2UDUY+u227GsNRd(QF;1KP9i0s4*4H&NGP%{SO zH=-YYT+z{RV({UDd6x(7Tt;_%@A#2-qSGUo6=%+wK@f|Za%$g?63JU~yb__in6p;o z$E`Jym~7Uk1IeRfeS{=H@MCv0rAMOCWKnfX>GGNkL>h`M%M`|Z% zMa1ynZls#|g*s!r45dB>Prd7zZhJ$Ax`U&$DEt{@pZyP$33Z+r95j7$!V8A86MfHG z=E-kgAH|MP%GRv{Vu)n*AE(hV`fBLAc#tGEo#_ZyEpECNY6+VvPpD^C?>7wz>L3}4 zqd#0}?=nU;pE=;&uqQ{W%iuyy)QAO-jI3!B0g~DMQSFHFjQkxiM>H*aop(bvmc9 zv0*k?$o0mJREBJr6OBiHKF4)oOOU&**l%#S&UdL=t=j{4pBkUrfNEWu=uJBk6owQESd)xN|?H&x@wX0gHY~%ZP~Q?n5?eC@sAwEsCw}q$*|gq8)jf1bJ1F}g;!^$jE z`|PM-_Wq;91IW>4%!00Z(}G5PdeUBJAlEetNVPLb8eNyn#nk!Yn$Z1iR zHVu((jU~kqrQ>T8j+RB~=~mwx`0d)IrEJ@WIR(35aOwB+hqJ-R!yXp|BWD_1`Qi(9 zEbp$yXz{9mY~>cSF)PKW0UDI?we$<=S>UL71*fGoQ`WK(EnbXNO1?LanR<25H6VPs zd-=hcPm;qKJ&RGD?-l4VPg`z;(S9wTnl57*84MpimWIh-(sg(gVM!iRFy0zA!cov| zIM9JXf{sl;Wdzql&1U7G^zyPpNj9ew`YQcg{adj4SpWK(hU400{;E#CP0EsjfqPs& zGCJI2@^;0I33yht_L-8pVZHZbuEdsnvfz0s4p&KdaWQ*i5i!c`ZLHw^TGraMAeFxE z8OLvzlsl+^&uaRZ!ZK{$$*}dGeVJGG=|Sss7H@bwTODS>SFUv>M)KU*TS?andN8Sp z63KgD$&CDb!nmG_&FM~BhUvz{J+Y(D)D@TWRLXl&AEFZn&8aucRZ5oZ*36kHd0eLK zYjnXVOGPzXSMD^K7HOt)TH+;Lg8`%Ed6~QwHxlQ8w5kPg!IuBSPe8x&_pa(Cn-AOl{ zEM0k<0@OyA?4mTycaGJWz~z~34480VULF3MYrMZ{DI|YI9AHv?E$#a9ECl$#PMtkj JZgJ)Ie*+o9@{j-k diff --git a/src/modules/locale/images/orig/timezone_12.75.png b/src/modules/locale/images/orig/timezone_12.75.png deleted file mode 100644 index 4f74a8582a8c48014dbc687709f48405312f6662..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV4TUq3>0Z*@i-5pn2Vh}LpV4%Za?&Y0OWEO zctjR6Ft9BGVMf=xhCl{`WQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E ziUB?$uK)l4k6mPyGTSYEiF591=fbt_#T(qpws_R+^6owx+H)@S^tbd-kToSie!&c4 zidwcVA;~i)ST76%3SRYeaSW-r_4cA6FN1=>fdkYASTIY~1D z)eRbOVEV0lv90Yr#nZUj5;_!9rdX~9g*7rziFvk~>p$Ccvj~u=r>mdKI;Vst08>;{ AsQ>@~ diff --git a/src/modules/locale/images/orig/timezone_13.0.png b/src/modules/locale/images/orig/timezone_13.0.png deleted file mode 100644 index fe2f134cd3118897171f4ef4e05aba996e87cad5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 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 diff --git a/src/modules/locale/images/orig/timezone_3.0.png b/src/modules/locale/images/orig/timezone_3.0.png deleted file mode 100644 index eda59dce11a571c2bdd5be2e018c013eada16fd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17475 zcmdsfby!s0_wNBzR0Kq%Bn6QU35lUzX;6@mE9A-P)D=-j|+Rfg%KeY0jWIQTJu%2EWL) zUBifi`_%Vf>63>C#F9}mS}8y70W8xW6=*>D0gGjpVEkvI$d%gwkShpnGvFa*$-gZJ zUdpQYEDbzhCcF;b4_1{22mp%$OTsI1cUXhLEB|=}0KSF-gg{elj-qku+p8=!_(uWY z>AnAY3;+b}ud{#`Ul{SEr2Hj#K&PBV0)AMpoIuUt~E-e5JY}p6q$CF2*{Lx@rVG6}S|ZGv^k%t2q2&ZB%*0wNr(pC@z|h zz|(+D0s`>eg7%5vCrd=OEdy73y92*l?eBE#bk_28vFJfW@eM#j8JrJ`svVRk$C9k; zbqG;FQoZ~;_952`_%iY>zoUTA7$NoqUjh}G%dsWkkh<~} z=tN@N2!um?-o?4VxB*#`S2Q7_W4ZneDROH9E&9T$2ag~DUlq)}R2GF#$V9wBe2%ZA7_+2)N>OUSQj!E8JG!S_ zlWEFpN2ek7^tVC9wgePn$(2u$(KcelK(^$`4B5t>DaMA|srHHM>OMCTo>?G0P1#t+ zY@yAJk9@<%^$?7YQKlz_NbLbOALu6^0po_Z`vzMc4+OvAo-9a|>)aeM>oaYnuyC30O(CH(8z2AX7QTb4 zNOzKngrlQHCYNGkge~UFiZfptqoKHz#r`#=Nk+wTjUq_J%JPg7TZnw#k&R^N6j?%M zos16YAr-Tmc(Pt=7ABagyk+h1+D74uwBrP8Cqws#_d0Lgsij?8QbRn9ixMfcay`Y< z5N(2xocjEe=fj!mOm5;<({`hxf>Nu_c8+R3`FX;PrRC^(N;QeZ3qbJY<JQwaA_mXbOoxFsf^G4sA!yY5aHEpD&mh#Wj zZAA#{T-}@weLJ|SoYt!+>KWd~`e&2%%14bWFDYWi3+7DoT6b+lt@CVPi`)}Gk>lJB z%Awr8+BEeBylN>i;S!tAJ}q8RPBs0+(Uo2Zaa-$(k7JyyvRZTLEjsB*K@qSt{3~Ki zjKoys3-|QFalI_Q7uq|MyJa7myPD?`V|y_Tf6#*sRwc30-ser{XUPunOqE6RnL2&~ zv3L4ChklqGkDeO3(-#*>%bew32-M^BbDIMLps~%FL+4A;CQC3QOp}TNb;&xC`(B)# zvDNsmUR1%lzGuTxm9O%ujP-FAnR0Yrne?N6y173WGz0)1R46sLe7iPkAuCn9#_oNLVMp~V=|dIEn=0atoOe2yA2Hq!qjC>%jOy{L zC@C!J5Uh_!?VfhLz-|&*UuB2VB$2rdGw}J;R{k2Fn24L!HTLLo=l9a@EUKB%^Qz#@ zCkq>3i;t82(vG_ZxPBN&woV6tRIdNR*=L=MbO+_v?Nnsqz#Xa>d$W3^k&9wG5OKy+OtA+A{JcmD}N{41L~3N|`|v6&~F6x6eK_SYi`xa~V%xy+`oW91ok@_xQ4i zdW$9#R!qw5x0KWPb?Q&ghjBZn4_Z=$QsbHk2_6vOmst2cf-Mx(+2CAc+D$4}BIh8_ zXAJ_@EZ?)|7uoaee_5Ir#97lW)6WdEnxY#PhLs;n3!lUhsXW9F@+GxvIJWpB!B&gD z)ZR;%4@=B+uu4+WTv4R-+{cgIF|VseG<4J=B;!=gNH~ll6@E)jjwRQZ)YojfIu5od z$9cowU$6jQ2*KF}KX~zTB{-PL_`KBWGaJlRqx~EISA&n}~iU**D;3uT|2c6%?%PAoggqi;;=2PdH{4$-1 zewyL_@B23l9$Ay`=cdu#>$bBmHg>hMv-k(8ots`)K+yf*az1YmFU0hvrjq+XEyLJI&&R2} z3rd?*(?3vNSqd#Bl2-~+cEmJTos|R(AcW;Nmx0eJN|#aGYH&~#Sz5)Db6=EA7l!Do zq%O6LzsDqWO_O2zxCm-XAp<;M5M}|xzr5N(&5FR3uR4g|Or(Y3gY45f8H#L(oLi4H znE1RMUNz11qv|k!3x%11&)%1DHgjlyL6N@--P?Vm*He6m-qQ_Mnac>5t(iT+9Fh)a z-O?y06wLW~g#-v*Q<&f`*$xS5SyDz>uMjUcFv(Q3KX2@Zwp2)qtZuA2n2Tl3vE5_% zTe^L{oEzY$y_AVEcMP2-y3!&_qBk^&aiv`!3XHP*gMbHM+AnhJvvCF7)&YS7cm&v$rxHuXlm z!e2y|(phGhW6IHFxm8vx@OknQR*AXUb_WpT=PdUSR=N3%{ox4SF4Q<`T(HFs+C3iN zgoEH-8IJvm;QhXFjKYquG@kuHCD*e9t?$_lKvlZ&Yx<2(hV()AbFY*Mmu0muWgLUH z6cWZD-yhEC2rU|&)(Raw%%`&{5y2?@vgsglf&mC>$Ku~gnL+L+l`n2v8kDOVn8v8^0mg}4YB9}GP1FYrDj z0rK$Bo%r@vvsK7Dci(#&Mc$GnuHP2_#0*F8!%nAf-<&i<8&|D$XuevhH=&4rRLQ6V z4a1rY)*X34=KGm}RD5Iz&R3(WtvdUX%vMr&Mv!1DIJ{7)(|rGiqj9A5m{CRe1iiYs z-`Jrhuc><Dn38{piqZg*1!RM+4Vd)J<(1bL&!Y~evhjO+P!^HIsNO}BUBsme%T*>26cOUTHI)B+kG(jJ@|Yk?3Z0wV=LU4h@Z;M*;nE3vOBL`*lu95n z9OltpT3)HHDjnarT$YE;Eq1^xe5xEl%Z#WR0iUn){vrgruNRvn@brs5r8akPQ8EgR ztKZBjfatj#pPU77we8(8r36xc-?|R4*w>VqEWco`-IN|i-ZQJ)lPx|Qn>pV^H#3s{ zQf4~)g~$kn{O(s65!0$2N2QIPS?(*3`Sk2{F2kJFo&{xPow_z>3Uz=SrllJ;3Na1@q@3=m}e?p&(%%_@fAGR z_tk-ouVomx*lFm7LdCQjt~hP3*HuN~!GGr}?MluQ zH50=i=|5tunGGv!FP|3L9cU&&X8CQWq!~-BVqcw z*V?Z12Z9XEf4nDe9=LAxj<0QEL5m2qDiBPAvuDj$60XMW#TPdqHVexW+T&PVuzq#+ z+;K@9ilIXO8j|r5h&D({ins^93ElPxT7=(1)IR%2pBt6odCx zO{e|O<WJ#A}TUq)=>PN!p#bxV)~i-P9oCQl~Y>HZMhtqcaIA!esSUczl1VBvoWis4pbo zMd(Z9nXiy0!($iClr-j)5!}S#1*GKoL~iCwd9PYs1e0g4x$n$`Le4=7 z*&~MD9|F{FSBz7*qYsaY9Hi>)EnazUMH^W5L94)n=A#Z)^)sl?%!^ocPS8lEJ<=3ezfMMOQ*k$;%4Au+e~p#(U4V_P z@nGjy5`C=CUTO$@L?YECMn>TeEZk7{zT>W%36CEH#Xu3`CvYsw0DL6$!~4vyv@MO3 z%@P-xq@==|^J6ZYKa{Td`g;tAjYv(8lxOYum(!0&(Yhy``wV8qJ*!IfrDo8QM`j?; z&xitel4s_hb##vD$ar-$&}(b6NpP*{^==1`Ey2c^249}77igPf(EJbw+F}D6jkcni z$cd7GF3F1c24~Is=9e{t!d4;QFMRwU+1SFZAlJG4dO_f}3z%WZ4OFj67j~@_bDjJt zQ=baj@Qx%Mv7(5yFU(^*@ODx5^f>5G$#~J})+_LLv(7Ybqj-F0Z7@M9paGed@hx#4pOy7x(C9Ih4oh1UfDa_ z-<6RMU)=_T?}14888*FVE;du|^nHbdKiYd?stRRfv@v*u(t~>=N^Cuv$HsXL1N!*N zX<%mTtOHXRIMZgI-St~}hX_$V3F=$1M<47S^+eq@S5rUy9VbvPT_vdPob2FWLRO?` z`N){8?)E80I>YDqYXm>B-0n+q5FyuKBDXfnpwZG40X#X`)s}XZZAWFemOQ<{jc)aG zCy3J`wP(p~3VTPj30!AyN)S!t@-+>Y1=wR76Q98gbJto@9fgNZkFB1@s)+Drwz5e_ zKd8M6bl5wbBd!9$;x+4(`X;awQyG6HF5+=F0}Jm-U>RpKBY*)M?ubBfR{UTyzF48@eZ_$FN0n zHT=YEKx^RS4Cr2%J&BbmMT zv~;o9!)q6tnJY$(uUA)N7$b^_K+==^4hy^a)F;y5>Fd%0 zlUNeCJ5koz)Kzw3+l0QtS}9RJgVn><^U%y#NoAG@MRp@|)1T<}h6yH}(81nzNrO6z zwPN}+-`5%nY{k#zdqM;9?VpV$n3W%tljR9g z7@umWt{e(X9e1b~9|fG5-2aWJxDwiv-r$Veu_AsfLvb_ysPRiHMMi|JUEV#J?&tD121R98$t6gwj3bNvQ(kh1wVwoazP? zbgN&Bi5op;I}6~$=-nO#eIkq8e2nyoOg_j?RA1JU%jvK(e4n0&ira7+3=v7wM zO81KrB#z-3(g$g-a)(DA1)<$i(i{HJ^1ai9Q|;)b1DJEs9SYSxspr~yV?H&5IoPZ%9aOYi0oH}32w>~^{f zr+A7TJpjo93%o_IRqsuK@&F{*GQ-?ooh^wdEtoStANJK8`J;`*FnWTOx#qWp})dIJZ`NoD*n~0%7pA}9Cu0H z_gQZ%bXl`uOvfaSl2UI-ift72^@U2BezQ0RiqzG6O%3nue8!+ zC~5XMP4rWTmQg<`>kM`@Nwx9gT8eg|hphPm;U#N&!hWQ%#o+&64CBo^W zA0t91nllwft^>CCV#Jr&!AGP(^NCY{8;SVez_Moi7{@x7}*^7)W;tFB?#I6-xBh^+8n%;6zl-VOgWWwFc)+C* zu)Y7cj56TKjd2fOOfjRw0RChS~-r$4$()8S4?)P(|?64^LR;R;I`VHTTe%CLG?#Q|Ca}Gdo9r zx0@?Ce+T{a?kel=hqr;jdyT3Dz*9$`a&71BoVAY%BaixT$*248v)2up|Hjk7fpr1%q2_o87kw2|xCQ#iK|FF8B7wgXu3F6WKU3J&EkBUMyvFzxa-$N&V} zqf42k0?b`iK(LDHn1v-t&=dje3Nu! z_507!#6-=$;{BCRD`1T)@m@hrOJ5X52!I8A{Ces~T*c_@R2YdSzqJwLs-jG3+Nbc> zNL|EoSm`(Fqk;1^79TFSN0uYV&Q6|hoX_jiSzAYb&^N8iS(FVuU9xbFFv0Z2XIDem z?)1-nN3u4aUL-K#?5c%R_uI&bRLr9A^*lML{jE(J3j4b;N;pXz(FNqp`UK9y?R>IW zXG&-IC1rNEwP#J&+2sS9&P1}6H^Ea!{NDOO+Q{#4hKaxm_IujzZt&YqDqYLLHSJ}( zT-~>P)5d!4bp(uDGAn2l^~umcmtHtICM{TfjViB~=_W&yUBpGNiJZ!xi%m*9_FS zVuU@t-V^qRDhH0gw(pr+<#|{C58?IT>?SS)@VzViu#}*Kj1gIL$(fqp3ojZJMud&# zEQ*#IWy|5L29*2ZD!kw_JOpD6t$+r8R`ssNqpxXd1(5rQ1LNXA7fd~vVBawvw7U|@ z)`*!IW2TDXlJ+A4Xx?7RQ_P#-J0WZ0bwuiADw=A#Su-?uTR+R8A3<&X5qo#apxZg6 z={3M||8kbO3~E%}o-+oI`vQ`*BkG?tBPwatI_x@W={{`!fJ~o})V!SEAPnyK^AH9i zE{RttIz4`sBrlA7V!)DP_7(5o%a7dt3T!BqgI~SmlV?F@$%kHv{{!Cjy}6kjp~OP6 z!@5vuibxfAcaN*uAB(m+zbOeM)P6q9Uxp5KjrT082>7B zi6Pe?>~|pto6_brYlVd+yMYgX@sv-0Yvl3$hIF5;p9z{lu;C-!Lqa@!(A}S;z{u_y z8pZpebZ;`t6Ad6YV%{J#&L7SZ$?f7{(WYp5;hn5VTA=Dd*W0(+hF^Y2zGV{{Fe|Cj zM`N(_Iy1gDwpr^ya7WV}UZCk?)pqjLldbbSYvMs+c9*g?vZ(g$V&zlWgWu)Ip#H|a zXJ19Y#7O)q2_U$@=(p>wtREThv(b3G65dkgbc1XoCW5vLQF$fw;Agms^4DUYO^#0q z=OqL zFr`oEFOub^bK{iD$F=0eq*J1jwbtR};S9 zB@Llhq|e-|@-H`dI`K~Wm$O&H1mjjMU?KSuOtgTNITbHXYt96YsbRmRv(BQ@{W%!- z!iR|q^P?Q|h1)SDtu+cj;^WcxWI&T~V!#+LZpo|Y)N@U0#ReML+m5>GP}F8&9}{I` zN*PIOdSTlCz47EXn^y?rx7AG%K+yCN5m;_Du0DO|7$oi&G0Aj;UY^U|v(-T03g|9; ztS31I+6wyAFA`}Q_x8m0KeXE}7zu)$H9khTQjf*a-`t}%E0^#>6l|~1pD0@Mk#N&^ zxCng|pHksuWg{9m8^R$>PJe5fNj+rEiWM@=mnhzTt}p2P4rsdD43d0+?VM{)c5Df6 zs;pl>_8_Mm!tYi4l&Wguule8<^;!iV#GLB|8!LiGltWr*l2QDiM!R#!s9b?WPJ8Yy zF97u3XHX-lp6u5R8~o_9>-}uZf8{NeK2<>TS2F`H)+lhS64dE|4&pj9@Pz{O5g=9G z!N@kZi&0|)G1~cYK>%G5jxutHHYi~jMeUyawU}`0Nwx!ouYd>{Ja{~E!frs>y}x4O zz-w}`3-?is8Qa;Ey@RkiODB`2C7lqEIjk5Cuvk5|pETr>>3i$j}E{w&Xhq+bv=!7dF>gL3V|d#2-z1Od`pYt(RbHRd8* z3ATCM^=qsC#qqXv998bC1ltyO6ChCypIOZEzNUd1{oHRoYV<=>^)>K71O)qFKiqHw zm|2p{ne)RLW?Z3){sZ6Q$7)=U7}5!O?m01Uc>{t}mkVu3J5Cq*Uj59=`RwnJx%YVi z4zuMZ`l+g~Wy92KawmjO*1zzvk>h=TK*a`Mw3&XZO(re=v&f?j}IOT3B6_Avh zxeOQDGWh8;MY>Z!4&>5b8uIPPr7ND&?rr4s8aB`>zS6e-IH6R`uWG7mz~C*sHnqyo z`|WQ`w{RD|c_RUZr4QZ15CZ?5YDQ^y)uJJ^7l5=`s3YB8D$#Qg!Qai5(bG-q> zM-#0bwD3**%22!9x56BydYF^uess)F1q~O<8|u}0rt1~(oT@3w!*+5_vytHf4F|q~ zv1~Is3<-uNrmA-Hucz&M;oG*}$ zIGMbm`WgqXqXf2JDmoZm+ywT#2R=jQ6)Ml~qV!TkWHhruf6i-iqIBdf%!V^c5JUyURXWm@j-oou*bLwbhWZvnFpj0v-4u z+I07`S#>q%y-odJ*!Xymu>mL}+}jC&aA6RhXfW4_m8N7wIUqs)!#Ey&PV|laAxx15j1Ler#QO`&KUtn$^^f1q;nTOT5tn5? zASZS^?Uuzue7lsO#?pqZwb{k5;TiQVSp0!k>)|!!ta{Qg2$NLJ(eX|(8_}=5BbG0Z z3tIOQ!dVv4P9X#EkQr}`ZU&x%yT2W=zSxD3@>fYe^fL?}l@=vJ zw|t#e_sGvDD9xWag#dz;KZ)^{>w6T`h<2~?_x&~fd$;jDIR(Yw{oF1q@s*NijgB4h z)=3eCw}D(Hyf;{hIA)${1R?mPMpk^-9WYa`sWPFFi0=OhiHD&?=sZHUpEsx}h zvE`VS(>Yac5CTLlJ=bEet$6ZSY^H80vc-MhIy8S;G9X+Vjc4E`(q%HtQxNX ztE=C2&97 zY0FL#I2$&+ge(1nqZ9p81&*z!4KF#9kiV2>AM= zD|H{v`|Ot$lBh8wJg0N|u4)heu8B*cQh_$NB3H|YD}eB|OYxdN7$@lK74rs;Bs*&3 zT9&B2>drbzxbs0W&ose|OlIaiDs!l%y>a~z4&+Nr&D23LVqI#r4zHyv((2$WarLYk2fC=;q z!S6MDlj-ERzGudY-I%}O!|olQuoLw%=(P4nm3n#>+11m6lO-++`nmEe0+S*yo)&}0 zqHgbg?2pQ`xn=U`Tb)g>q8yV$jmi+GQ&fAHsUnax7p^jCDEiR|dr>=>5+j`?O33@iEgiS;Ejp?jt(CIj(IkY$~ z?W=ULw%UizS^=T%Q&>Nu3@td*2YjIpY9au(lU2O__%21DG>Mg7y#jOkFq3+0QSNUT z4zt@;g6p5+_fkK7H3Bw+UPeRvblh5`A6et=^DL+)<~|=b)z#4XrR`Xe4~KqEZrkqn zm&8?>L@H|daNE1xG?HwJUPk_&td0wIy9W zSCuM_!)oW~>hjmh%dkq{!fV9T6`F^~fFRwa*WVwyQ)XUWvgPja!cgFkrLT6v6CeN1 z1Wfc@h1#GL8q$3Uw84YNNee{(>d2LvPx({t1;qJmq1cxH#94$lrh{Q3#lhCZ)3^^^ z*%yS#EH21%eCX~3B-&kys;a8FQu`JDsRr`UZ}F{m60SJNaEDRUcRE;%9)Z0kZLKB`XS9dXjRU-my}2{Oiu#VqjT{DINV?{H}gkTnA_`k@Wk}u;)(43e#Eph(i>WR8sgYOJgHn$!zQ~X7wo9cie%akr1Gjjhed( z%o1`o+cS?HMJa0!25AY>we5~0;xhw>`^T~~N+5stx>f=k7xJI0bFyZnuf`BqSl*Tc zfND84iTz(wDcHm`++Wr_ooDS{`6$*;FAhl#l$8Px|3p_^$V^g@g@?C~a9D}}iBkC8 z;~jy&PTkTS2{`qFTPhnD9ejf>NVV;fj!*3)aj3YU4;HT|fr$!+}&y>oQ* z4C3gtv9qzn2{WtctO;FCG3L&Plv>+fbiB3Y$Rf*8;Eu1|;x;o)enfFWB*%IwWOKYG z6nngUl;Fh2o3KQd_fkA zb^*NKZaO?%MQ7?%pBi3VGqof%EdtrqW2LwuHnI%evdb4A7?db!L6pA(cL@p#gfv4m zz*AzpM`%#qFbZH@!TL37vw}>njlgPkXTqrkw%AtYn9^DtI?;RUTG%AIc++mjhq#|L z-dbJ6;mXmL$=+TsLcOnMh@1M}E@#d_pSP1eTv_Qto}lUOzq+;`E57<2nqn?hwwT2e zc=GEVvgAx&TvzDtwDwOiHso3=fr4WUcwRuX%|_Ztzuwb@H~F4csH}hSAqYq>oKKO3 zJYoU9dux5fMr4N(?a|7{phDU4BAYGrdYxf+f?UP~#}Cya?#7dqxJokbpeH@sqJQ6? z*-nB!A+Y+9lR4X>GAb=3GP~vAV&tZ+tE8Zy@M)ftR#WNaYPT($sc3&c>N=ov*@Q~r zW{qUnaBj3yH_GJ~uOzanczyHj9@x2a;YYqTw!J;6_~IYU4`2fQ@z>lxE_-wJ^f(cz z>Te4Ntu&~E4JRJE58+@N>^)<0Ku{EK+qYvN4b@8%dn2^WLfxh8@3Rc$d7kZET|tFS zAGjDwe7ZW77MZNzua)yu8kJmuh}F)eh8E^H2Aye?2qgNQ&z{O2hBMGRW&oe@nBMf! zYb@+>Q6r`#atl_|;)6xm=2eC_Q>j*2VxMd3zx;GhK1xeyzME$nQdNJF#hoJ+uRUcJ za~{ko&pdthYbF8_3)Yp|Nv!xNfjjubIdLZ*%8j*+*3@ntRJKhiFRnrCUbU{?>~Hw) zF?9P;W!vCvACIJ=mL$?sUeC+|lfH65K5on}%l(B}d{__P+1x6XLI~*mn`}r7Fs?IW zYM{mK$5`hK^SkhN9&x>wiE7CXB~$K*$3|g25|QZ!Tb^M$CK%Ub**up9Dq;CGtZT%Y zw}*Ny)!@M3i!oN#ET}qZ1;ft@Xp6=c$LLHqNJ9uJlS5MLr)wh3M?c4nNXv@PZ>V+A@*mhLs?CVUvgbv^WA9WU zXJ|gf-Wo0a+3$870|$Xrb}#)l-!9s1gan9?1Hqx&06RHU$sX6*DgG*Yq(*AqxN@$^ zT)-gk$H-cl&ZOB+!>Otr#%_9R<1n3JU0_uw5A#G<%@M9#kI%s+!I)&x%56A{lt`aj zxZ8Y}O|-d}t_vyu&c3I!+h=eJ>=orza=Us506IF*FRX6fpj33^yO5UngfAOBymL9v zvG^;!GY-4^u;YSz4*Wsv_?m%&C0OXQXsub`sX9kOT4G)x{yu{ASEgDTTk12L9lpQg zEJ=LXtQkyay>k%R>5SW)*UYgk__)JVPp?VJ@j3&v>S`O-!)yRddM~L@ZTFvulN!H? z64}Gon@o_0I`go6JB2LKHh!P<$ZG`MSGqxbwTXSM-cB8phLJkLARFA=`-@IqhX~yf zLw~DO>FFP6BYe}D{+1*aUvWEqs)5S&K)k=35{_URZwiE3eK~$hRNg`+=46(Bj%?VNo z;iUvDT9@gv%TcpvP=L4XeqPMa_Z*H-p^o`7B1dmn{A7V{!Aloe0^7Qbu`^U7=C5^@ zqBqE3n;#Tmu(DQX7u6Yax2cH%6+3sm%|263WbH;Mg!T_uQs`bN*Sb z)$0Ztc>+=YS2NZ@dYy}-rhqWM5%BZSqz^`fLd(d}SYe;t1!*_jQSb503*=<OTVid>2^C32qF)L1Go*$B6pxZ`naKmQN+vYgwW`KZ15!;tU^rD|Eq+j zOG2LWk-Hd9GP5dz3L6Hi$UZLUHF;Tp_#xS z^K8By5QO4cgwHV4lyASHM2IgoA0ngCkBEQ%JS=6ypO~=OVHD94wNefLWM8rwi0w58 z+4kAVOPSLo3U{|e7+sz+%U?ttju&*oKZzDbje2@EeYna%Uvk#N@iYv*Ypbl@iqtLm zF0r&djovyn&zVFW`w|8(w&I&I*SrTA*z<5mkTfmi&Ttm@xp0Q>DaXFH3lo+e?@#q> zpZh7bK+0?iou)*l*DtIXX@6hXxB+~@((%n`58^n#kf)30)($$4v0BxjK(6vRmOSEF}t6{0?i^+ z{JOsQE>!vi1)(q>BqAM(nfnF`GYQJebBb4UmTR98Q~GpC0#C(2caa;Y-R=EUm7Gf( z&!^|B@Uv$wBgvAW#3r;L$gyzMkW965 zG`J7Wq>wGSa=I1O!rF+>4LzM*t0m`mIaiYMUVTDsf9^jzx2g){qvm7$=+y%VQvL*c zaX-iYhQ2&&LPQCGExh63vR%DY6g#=e#igO-6fq6O``mc7;2F@*vCAfp1iYHzA?A;| zkKr+8yv7;g{{4t*kL!T&?aSHYeQKE5iA_NQDENW>rG3(nsA zCE!xy(yQ&EBXxG`7Cq6hGD?cS^Y6|k4Pb*m_s6pKhqYGyQ$R|aVddjx^c{HI#GqjA z*Kzn6y<7yJ*%_vb zp5~bnr1ww#`PY_l6Fdz|G|Yi#?SG37z4wU$VY*9o98R9?c3>V?@|a!ZWGlTk!Mus} zJ^=5=vGrdCnLe%Y4MNR$f&Ix>v<{QXmRE^vaDU}gk3#CK6bW+~Nm8sB2S0=!E8Y*z z#-ERT01s=tSS06;pWKc4{n}7wx?z$D(gV9<8qfZ#zhTgAv2+=mTfdMTLWhwYlSn@T zDVfXZ>QxInnc~RxXP}8==3N5A>aBwbP%fUk?M#pPEo9`AdM)%1%AYOJ(Ewjab&%i+ z9FFQ&$<(05L{p;c?w%QXr3{T9j`Cl3^K&v^+hkNKP)7bN<<)iP+-X00h6{(=1`7YBmPy7(azY zCb08L)VAmRx7T#Ng}FoMt53@p6(8klnza(>B6~0?qiO^!KBeFZ3_&)07-EZNa-v=T zdfMNxuoH1qkivYvqPz9oo#UqnSoFP&e-*Rg1vLGIy(1cqF>jcL2XqADk7%1TX(V9QWE;#uBHJHD*gcGt#r z%-Y{DOD)K#8IAw`n7J&jYnoENnS}Xbggg~40GB7rkt)@}r8gdj{;s>KKO=-1FS2X@ z5wxQm9o}AAdPwkZI1&6VeO$@WAU0W5+O_t0l8xw1D+qnE<5LWi2|Am`W4fZ-3ycDF z=O4pWaJ_*sK|TkJ@PqL1?2Ivev$?3NQ;b~>mAyB@!xJ^4*)^g?QRA_5w0rEKfZz)} zN(&ohi)AS;9_2~Ph8*2% z{l;!X=t`e$O@Yv!tdmC?@fFEfXX8$$G;{~a-|`?H>`KycYxf7_$Ei! zH=B0HMZzrKb3EF+JA!huDzbdx0>itJoE@F$bb+jl`TnGdg`YJ7FF?1DyY^_B;>WGxP{~@pTCn3UT1B<$?fN>sHdUqqh~gA z{;|l;jW^dyjZ4c`VzG1XFQ)Zt;nDl%r2yMAkUPAApPp7br&+vS-8$n44L>qx)<4hO z9-7}7@ft)FtB6ygF4Pe zLusvZuh&03e31s7nh`_A&xlTAGKJ=c`63e@({6TO5hS`~0V4Oa*zH5qU21KnmxH+X zY~ovcYdzPUD&X8SOf}e z%+LGu=K(|0t>3Q%z|-;6H;|!96MBw(Q;dq0l!oO0**VS^RhG_wV_GUwavfz@wKLTc zE2Sd%mtth;J@xA}V!eL@EU0PPF28K9Zn8E51V7=uBE0;$s~&FqTOQgUT|sRR<&_nr z1364xJT=ME3!YxPHRzdMGS&WhY;d}6dGXcIm4CNJ!QzF9xJ5l3PAx)3mBlVcb={8|2b4mUGBwg2Zu>q`b1VY!(Z73jOS10lK-KX_H14z<#XDT(o$ zoMcWS-E&ANFMv;_5s&rQAC)GvUUjlJQVM;`!WS;+eopvRgGTu1>1-{cPqjDbOg%jz zgnYc7P&?kb^nCVYA}Jp@4Fd>*$+)_dtk>ZJvNC~LKDkp>kcnZqFPf^#oPanAe_O&2 zGeV=(CYJjl&zq<+!><_pl>+OF0^5m|-Z7kB%N7p>L;^LH_%ZhTPF>NeD{?6P=*cmYMiY{#D}VLzWBi>zM>aYYG1ksFzYA1HtZ?}tc}9!>$42+D(-lf*9IOPo;Wr>Ge7r#c^ELVMMykuQ9=v^ zU)ThA>|&!w%+B`D%f%jQke7VKO8711DJ^VzYTZ>l(|-aSih<&oYH_Vsimj|yS{9Fd z1@3^~A^HuW}y^&9j10wFU!bifx--4#C%j%Ir&x3)}~#bHJLJ-Ae+ zl%l(eZq>s^3yttMVS6*A9(y>z9sx$1|F_l)Mv#A0?ccY*Z|`%zy>F5w+emWps>KL` zNV1F>90U<15k%xHE((g_$J`cphz9AiY;YX!?z4CSu7tlaHwZz*v#GBLvqudGvND)y z7i{h48q9MFbU}DLo{ERBSCF%lzl(}rpxgO(I;#)_U1@1%!<5#Po}QitI|o&VHNf=( z6f`~LwLIm4tJss;KAU8XmaXT=nnZ1}PTocjQ8eHwnG4j6!&SK_H0{&0xyLmf(zG4V z>DnFB+HwTGb~>Hcb-AGD_8ZMJS0A{04&5b7&-0SL$3=aw zJOhu5^jYh3nc;hd0hS_{8GeOKa09Ly`W7$%KmfrdMjpBPLB&SF*Nj6-jRT7fdF8B- zYsS1X7LcIdjev)iu|i8(unNHk%S}KJt28}y-Q-|}$uE_rV8d>h0)a^2podqPQOZp- zh@9o&H_ak$nMd3<2L<%V+vadWL={C~Bg6m!L{+n+YS^<&5Fc4h0YrYS1ps(-4LiD) z&A(#-!C)a6tf0~}uk>gML|;pOA!9~=@I5fv?ni%&>QOiVga;d&lFaPoF;P>gw+4>+A3DA9y=B zH2nVk`wxGQeEc{%I{NAJ=P&(V3m9N((0u71gE zv%0#5i+`1DckfTTJiVWVRJ_%j)cCV9?rctb_&NJ%8iI=87)dN7G!o$>7)szYa=hl{ z+eIdvj<`~1lz*XiqCVp}XL=+wn?VvXD`cMLM95~I@!3G2bmivfdyYCf^!@mtQHM|a zqjMs|C46mGgEDwMH$%^EsUn63r1CVK+9yO%{teGTp5jZTR!h9zKB(x- zW|Xg4FsyrcfVUiko-0b6uvjQ0xj4+_ge#7{yyjqZa+%Xn8p$4Eb7O~KzmI@vsG%&b;6)692JG$GK9o>+wZhU?R}7_la~tczo!2Ld#ZN%_3ciB2+EJ&Y0k}WJ&K|9m?UZCBfWHzFdkx0X)&th zs=N;g41B~;zD!o+i}5s%qWzMpyIV%ob5TCox}#}v=XTd$ndJDMC(F~U8vLG1VC7|U zdO__|jb6ukRhHvepXqRFTEMjM?Nays^>*j3d4?=(0vsD}-nqIB`kh>IZqigQv2Aw# zgd6&u#Js7S=|OS5 zb4Y4+g>o!BlX|-|-%a%Y{TnH_cz{A-NX$f0LP?$+3Wv@woJu0>&;3V?V<)T4*4{O3 QYo$(LG1-i(`i_Es0naJ(YybcN diff --git a/src/modules/locale/images/orig/timezone_4.0.png b/src/modules/locale/images/orig/timezone_4.0.png deleted file mode 100644 index 483dc53423bfd040f6b41b442b4dff51cdc6912b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4954 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 diff --git a/src/modules/locale/images/orig/timezone_4.5.png b/src/modules/locale/images/orig/timezone_4.5.png deleted file mode 100644 index e09ed90bb2f36763a2f76b24a68b816c73f6865a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1773 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV4TUp3>0zuvh*B~VlH;_4B_D5xc$)o0g%gC z;1OBOz`(W$gc)7$8Uh&%k|nMYCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+>CR zZ42-Tapkw*|Ns9#kVHmW5pqDToR@@Ovyn=Wv_XQBO`b+jr)k6l3$J>E&>pjdnKphc zMq$0?KyJ!ByM$S`NwaNZrdY+#ut{6!kg?b?bBSa8bepWDPC%5s%qe}5Bal(J&MkYn zbHN%{AOlDit#bpS;tlRa>)ndiyO(bADB0*yu+|kw0@=AMU4Ufy7SEDR9%WlRE4O-PEr)zt3st>5PdGzZ84 ziU8U5`~7P7_<$H-)Ue;L@t{8(0R zbUdj21PDPG9Vdg^fg&e^fMmz1V4zAM2|_1>yH1Ayl>r%@r$OwlGa=nTbQXw0dw}R% zsP&>-UchLpDhcun2F45%GYcy#I|m0hH!mN*fUtNV@uZ{EEB;Nhbu zPMkS+>C)vZH*Vg4{N(A&m#^Nv|M21C$4_6ref#9$j+c!834E$!!ocVfR{XN%9%apBOdtJ4heKY>-^2(}NQ4Ne&eHfS+8yg%P z6chvmI5=2Xn3xzrn2-=eC5kExA((kcsxX8Qw!&3m3UzQII}fZ7)y3F_7~n?2orWQV z>H9`ZA%X$Y^8fmu)KX=R7RECbA2XXoS)7i(aC^VmGTmR(da}u@eacJ=uOE53U2opK z?MYXb^uFG=-79kDv01O%&*>ZVICunEM|o*3{bHjV@2#2ochBSSKG}PA*Nm7HPfl=O z`sm&(z31AE6I53AN8I|n`O@*nE5igiJl)K)XMWli`nPV1e73H#z@#_33KI(bGmDP^ zwMmvN-xBq;^lO!7_TsdF1;_=zD*Jt|xm9J};WvVpaep_@s(E9z? z6er~G<^>9?EWh=;!g6z_IMBYE7v)aW0d2mJo?WeQdySI7FQ4kT&c}~i&#Etrc2)Re z_S&aj&fo8yY@T4_hw0Cj+Sl%xpUc-6uyxgc_sO?;i#b}l4EcZgM})`5bGEEn=*@TU z|EHff+jmbtpF1OmukpgN>^~dc6*li>C7jx@q)B*`B9aD%5Jqa_V8IZ=Ol=&*2qA2R tyB-tJT`#$>5=lK|a4!?{4@+i&AN?PI%1uV!O$%)0 z=JDFa67cZw;IVbIceQx!WXS_|u}(pXQ3C)YpaA+?`+e%}g2#KhiL{%8y`;M90^<`N zrTDc)yy|(H#5a5_QvLx_=F%bo@7%u*vu2 z#ljNOKiuR8eb!=3_eW z&K>ke%gaZ9VZK&>_Xhy~$No@k|K*SW@fQI2L4a8a@ONNi1ORik;WpLHmLF1BSmyIzcZ(>B)s?1;o;>lu``SvBSo-UIc zlCxnn!l%{f|N55Fdpcb6_DD~}AY?X_US!N(KUy6GDiZ3v6UB((%^Z7TT>ToPlBosA zi%t3i=)eDi7XWxCjbY=HGUo`tX%?Oo2*V-zD(GL#{X4O>d>bu70Z#b;?$UoD$-i@C zjNXCn|GNL*-uhpVgO=+5_)&bGVi_a;v`tDN2K(Rb(!X)`-!0|LEQ02j(rff#ZZ;KR z&DP$TMRe06v-P|pQfN->=3@KhT;=2r*_|*T^kxbRXpwra>Doxv*X(BEzD5G}8+rhF z;kC*v>2g<;uxI^J@T8c>)x<2PIMf_iUm{Xes~3Nc@{wtmd zm4qUpiVUT84jfCQ;eS5y+Zz|A&0sMTVPv(L(1u7DU`wpGia{L97VDQ92s@v3&^N0R zynR^{DXJ3Q zO)EK-T8Q8-G#!s2Ats)wN6q3kF4EPxCZK+Q5v}HW|Koap{8R7oPt@L413oULt^P3% z+GZ5l*SL~BCoHM52AzY0wZr_%IHKryAl|Wah-YzQmXtg-uj|Enb<{^+KzCy6zZ`{5 zMT&bhy{;`%w{iJoORekpdZ6~KlyhM)L;zLkh3Yk1G}JDGykbfxka}}V{sVT{_-022 zoX>hbv}MHNLw|dgsz-X?!iFePk%SOlf1PhqCl~oBz9en^^!P2Po&NGA)v4^`*)+$QJMZH(bUJFy%~?3KCK3D6zV!(M z(c2RpA(P&b(O+|(PB$?Q7Ei_MZAOb48Hl+@XIJwP+b1tm2>aHYL*Q;jT%`O7!p2GG zOozSSB$@pKzF`!bsJlQv%1Gplbi)fAhEI(J(5SPfS z>d}FpB2s+wV)Hjj8!nH8&%gItNJa(}=T*l}%vn^k^Jn3nQ8ZG87fk;|ykOv`Q|!nj zamdpF?-n9a2S%Sf`w#iRVL}p{zoQ2}D z-iP(`rX{*)H82oLx!mp-sh!Xdm!ruVU5RYa+2saK9|>Zo+m?(NVUyxzJ_PSj%h+G>l4iv}~#|233+PC`78bY}BjO{i16b{z;8?Cr+AFGm!H@&w>dChVhAIiNAI@ zH~%7b_O`>8SqoYxSoK|w3Rv`f;xpB1va5zSmyO*{f`R1J#ASj0Q%pAJmCK5J&ON zC&FXTFQE~y&VODB>uejwOZv7O9-P7mCXQqMq*>;fi$db#_7ap`XNuomwH}~!`BKR>@ z3j$@E8!9AA77I&fH)wzqxZ)S4oXjUW1F@L~PD&^H&CVw&#%<$2=^Gj_G4(nbHj1O3 zMlU{KVv2`Bz%?`Lr$0y2cpz=BmesztjDJQp-~47MNnRMU-JOHi9ehZQ8Sk)nH2FS{ zg9LxxlGdGPp!VOzxB)4Sgb3B<^^~LZZgwvRMc3;|55k>7pWR`Urzn0q9VxM`tx#@` z@69QJrwp9{fmTmXsQizvvFupsFTv00IG{BZ+)mvq+bUoY{rZZ0-%;OEu$sF&YHoxIrDh#r~ITstGfkv3g^tg497R*zY zVzeNVd`4DNsWx;`(kPpaf-91w%&K@Kp`0t!WN~iKvFXYdMr-KS-QQ~@T4v{Yq7vx& z+jf5BM?ej@6$(l z(l-wzyn$u#m@yY+fyG8Vx4(Kc{=t)d<^Me#69!2YFqAqromB@l9ZoSg>Q9Vts3@{4 z5d3uEU}b1Jaj$3f~b!b^TBG%tJ`DgZ0>D_x#shIuv1=UIj zhjVdDH{Wa-!(vy-PL)k7w-A18G)LWSnHt==OH;sC1@AV?^BJvPIb}Fs!{R) zn^81wOe8Eefq$vpWt_S7TbJ~g=K?n;X?^tUqLp2?eK14ulfAXhQ2=`J`pBz+;95T`b~$wB9rTho=$qtd3ey( z#E_)dbq&+{3aIdj;a{UI%-M4Ud8A zrDsis0zJ?ZG_`*R@INy--JS3|i}p+OkyEVCCODq2w$fXO7aW4Nl$U>GVloh>kyS}G zaE)`0q0%MHeRde?#hQ++S7e7(tr2PC1ZezazG-n6jVQsv@-tWbmRc0v%?as`g>z@Y z!{wFwT}3o#1lAvWymy*5F-DKv=Jp1+dX{Fn9m8GKbS3V+VviQ))N*Y89k_P0JqUph zUVH>dLZN7kpOcO^5Z$+=bg&LUmNU6K0PzAc$b<&4YC ziO*T}R`|MB?Xh94^)CT$J~S}3+=r~F@m@~+tcy^iUeAAOoR(T$X#;&5s{NcJdhjLK z!AsYyuKj!edu#E6Vi{_`OSMu};r-Lr_11b^|JDu+hRY^~g~pB-BK5CfhwOuqskY~T z5o-jJv}|d0c-T$cX)eCP}&o4U>MoM0OY7{yC z4Fz8hp6v1H)e6(9y3qsIU5~f`AduaoWbUK`KJ{*pH|_v!V#-0(F9jIhXoQ@cDC&7v zEK==^;Cg^KQ`CDwn8f#YDm<+2K?}z4mi_w`f=25a`GlVa1n&r4!$)vVWyGb zEmgOO)=7O;7S7w2OfPjZD*(#G*B5gn03c5w^pp)oLT91Q#`4=O zB_Ha2;e)2z+&p%&-NS|)@Q-eZTj_mYY9ka$FM1QdMxkPqe7bO~Y?4^}_ETSZB~q+t zi)aFrF?-{<9hrVUqGUvp_MioUaq5(r90}pChV!3nmOY z99hgHoOl;^nPQhhO`3-DPwFJ^@})vAHen|?-2a?DB2xGz_ zf1`Dju}A!Dj3WK=M6$_%>;XbPvm%wfxQcd~%G+h(di(6D2%i7XO!U_9-Ti~TXsT3b zlj%yUW@MA+>L1_Sk!Nba!9zdCI8Tc_hnqoH&npc&Cqf2YVl8cF z8q2ojxN*HqXZBwy#<#zIKUQu`>MhcK!VPIuvn}pVk66qJPkGr)xvN;;N&`H2g|WF{ z8~e?A~84JJ9@yIbqJP!e_(E6h`Kidl-QxVXyCXKe+Rr;1 zJ9neAIT#_LMb>T0)64(vhDpgPl+^RgS?1Qgme4@%LUbngh98~pdcli6eZNrWD$57( zS+@S9DPaLpF2Z}&WE(1}8J=z#Zxut3yo)gDSfifb^?XntEA_^#v!sLVh#~VdtN6mMtb<3; z;zDiBSzWl_oV(h zm+wlgJ1WVESrnP6M@ANTvS3wzFK*g?p)H!3e{XhOl5;O;Y@}|bZdcCq%y+x((EN{V+7=b^WJCs7a~B{yN@ryc3&m2-dIT zTd2rCa6OW6NOZ1GByslaudKcpOs={4bNZ5)_}nwKgaE*9v44*R$iMnf;9uLw!D>3C zrP!1AV6jeMko&sR)6B4r(R2#O|HB(}4CT*Ud6+3vvmRN#o<2}nXaVt%-(F9sZ?=$u z1hrdUthi_ZLfE&s(0{Cyt5SQVWYN6sR8V^@O!rW6L)8B43U!UM4n#3xA{@pZ?S78B z>4XB!-;hT0(&I`&gFUN9_rwnBp8~1uvX~uX(u0BripR(=o2W|(hO&t1=E`{fY-Tjw z)NH>xdF;-K8|AbUK!}#H&`lpFZ+^YdQ4KpHhInY(Fn)3%=&jzaDD-T~(V=cTe5p}` zVrUz?Me0@)e!yzD(v5^!&nC+sbh6NA;BVbIh`*OVbKx>~#&EeP&`jNb3AFUw-usuw zhq*jM0Y7A0Uj;*dw+4>;LJeHn19j2`Uw6Ff%h`2bAO#}c5Th04rOR4vgOZ~`wLWMy z(6d~Qtn8-1GlU<)DL zqm$Y0pD&nHLTUy5qr=fU=dW_eIjZNW#jFGRnej9U^*k*pn6@l&a-x(L)!OIL+#o=F zhRavZj|MUzWyetO<}Gs(X%j_|Er$-Dh=cPtj;KvGK$h{AOs9>yfpdFBR69ab;lO(D z&rAeO$#wrBg#d@9CK|h2x?>(SKez+%-N_b7)eWqUSvff)%yo%K-_dv3UZ6nM{T8KI zO5GF#WC?GVyZ<6^_GT$OQn&g!C7dK}jSU9U6kzr~^x5+$EXfdjI^qe0;bS!D9f{pT z9FLOitBm4OnH#t}+;;@o=r2m7)IR5j=L=P>@hB-OevaT0i zw8c&1`Z=%JAWzSR4OfRv?T<`q#GQSaY3&JK1TrznJyf?=QV&Xg)%sq76i6k!MB`=@ zqiSRmBgv#j`*?lL+)RVB!@*Z>l`n;9i$zhdf6@>1&zcU8iXnc*&Jd+%q?fI<3DkA9 zQlD(z_#(?9ZHn8w=)u0ZS-cWzSO9kWeGH+$2VF%sOvP?oq0z3g!dmMLE?%yxLe$F# zlW&XlkM;#s#wdr`x>0Etac1)u-G}PZ!3Z57=H3%VbRk}uE=gsrJFR>*raD5Wsee?) zd-ah(kq@dpU-886p)ME44-}@CNv045^4^8CK7Y`@T>aAUr1fvl`+yK0#`;@i z>sEBbO7&4NJY!V1rrF>2>ngA7g~*H%(uo{`J_sFKUiPR+Dyc_*2lbbHX%yThZv zd#7N~mq)bJ_F~cQItBM;tqOcsbj!eokkR%B5yq+%dU*SKlYW>Z@_Xg-pe9zHmM0ws zo~``nENKG0oiDi=1gk7zV`QpB?C%oE!;^ElNXznIXGq%S#kH5l`NAw;JBu%7SrhzF znf41fjshsPy8t#OG;Vq7xuRcu%E+q+Uv8qqR`So4+El}f?E(YX0h9@#6v{D2 zhXACo*qX!nQe#8DlhGYgD1G<5z9#?cvGUCFh?y?>DML_5!&&LrFjH9~OeN?$_12Zq z>2Aq;i^(f)L7|1;BKl9js69!^ss@O+HJFwj7Z|*cb{7B*j69s1EgiDk<@dp1t1CQ zm}E)|f_&|J;+tS}xg?sytyGDwtq z1vy1v;p5(#es=7kD*Ph1CYwSnGHplHmdfahY~;d^yxOb%t1~&?cWySN@1~D^j<|== z`A0p#kbQ$& z-N=@F$2qa4s8Bq>!L#(d#>J)2Mf4~nSi712as(`K`OD$@97*6|dRlR)Fc?Xld97|!`uo_^sO!cD{6K)49&g!lC}RL)nv<|kh)zPa>q#po23 zqu7GSJdWc=gVK7DzMBm41v}P*V73ET?|6gely;ws@2`%P*EnmNKeGO2SqK59WQ(n@!!0dL&Bqbv4|MhK*aheh; zZlXuzFXfsp!RuCddU5%DFy&IIJ8mzKoBP%YH;ZdS^*mMPncJWxe!9i!4-4sZxTh*5 z5doaD)I<~S*x43dwnu10RpQ5)Jn!^N3clK!UO^hyc<$El{Fw<~N`jhkkhg*!(OF)IASAl>Yr4Q}>2i>{3bqiFk78;yF6 zajGxL&~uj3en$}@i;A&{WQz`M5QxYN>mYYa>YUl&NhYjfV5H$UDIS7)m#BWXW%XB|fmMv!P+@Pdt~-jFgNQ zUah#kltY}xqNr5Zwge{=$roFG0+ua&S=!%!8+rXYn`FX0GnhLAZ(nBUE6XXdW}CX$ zc%zwN@f7w7ds*UMMo-xpE7%}%p0CA=IHU8hVOghRNj8K!17E|oXD zF=gvaAR>j$&4A7sAbov}OWug41mBVR#)^%`cF8cmXMpqrFec&~yr(GLKVTQu6fcaN!_0W+c9rvCirC~x#z}i_nz;~P~_5I60{QKY^$zJOyvV{yY(Jx ztO=%u{Nheo?fGJ#*SykS6Z+IcgtDbo6Kd6}SL(^g3X5gzj0k0`i>^=X_wE(kamkZS zrxsA*5nrDHg^*}4u_JUB$Ja=^g1aX_SYh#9-MZZe*|E=DSxXAs&MV4YI(ahElO>n4 zKR*^YNmwyPRzpiAE6+==!ISRkTlHwmbsnhUsrR1eT3O+#S>92LZ!$$}+30!~n2BFu z`_=Q#C0LP*8pnLq*-T7I%k7e5;+WUY6*MTzJJY-Qvr0=h!ZH3RG$i=yT3Qdx#Wprp zMJ|l?fIG%ZzSdSv*7;;w1aBxm(}jzxiJe|Iiwpg@5di|9U{psT^Zlfbg+O0nd^VZN zQOe$KC_Ua;GL#ONWmbiZ?CRf@4Nk6*3u6{-*tr+N5U(ztFiB@@rXVe|b9 zYE7eOhYeX(o0VZ=;w;=_dBLD;`#F2Mn~R@*jaPm8W?^YVABe*+kVvATSobi;RAe&2 z!0?;Q_F}v^uHjjOE(OA2o0K?VQbcIje(-#=p;s#1Z)d#2;6_u(&?;?HbR>^OZGNHl z7zUqga(h~ruvor-Xxn#$s>^FjB>rMo_J-fN7N1|`=z5ftz^EJw9pd#nnqifMK0O2Y z#D3hvq;;89gkR)Oyl-g1Eo;)C)m_P^G9{2Z6zQP{UH>FV8Uk`FD(;!C^VZr-D7`r! z&|59}VCHv_ORiVkP_i$Gdaf{Lm@P<2ZWgMgeDtZJhn7d$*f;AKG^MV`?yBRgb1{Z% zx;K2bP2|vh-~5j`CX*!oO)6Qp!}@hYRKo8V(kO0Hzr6@{&@cC!`>>_1wHfOjof;}S zwR^QQG})kO{CFdn)|1|e~n>)YoBX~X3hAAxAamP zk?+w6L)XfzAZq6j{!~vGg`Bp4HWEA6<2wsUT*WUt32}tuz6x?ZT;Q*nigtBNj-O;| zG+FMXFr61){|wgg=z2oqzuJbW*2o5*$qFMOmi0(2M;3G)!#GETyUDXP04ITrm+btP znH>i#J6C|INt-zLNd7??SF|}Fm-y~T`fnG%^@A_J<48gb%B(ToO9qW2<^c~F2)iKR z9pjeg9@Z3Fy%v$5y|PA~g&yI*^@Kbp!E>*XYby(`#SaP?8#PH9q&*6l3p;iTSbSF) z0@aD{5P0nW7K29swl3uQ>ad}_<@YDiWWmAah8^jQ6hi4#RcBiVh&OZ)zjRO9DB9V>tMFM^b|ItTemgl0Tw38j_W zqar4Q%efpvg55j92p5ECdbN+HRuOm)D!TGd22Lga*bl%PS>K_E-4x zPsJbjgUlb2qkT?PkCI|@YP#*)Zre_ddDEcSFx4K%X@S{c+=tLq<-fPWempY{gUo1P1e7P=2i0)dLl=WJ^&FRQi7f>HxV54;+St@T!udp zl_=cJfN_o^cC7fh^zMZ`@0x`$%_#3vG%*sZ;qw*)gKuLrDAhv)Al&~tPj&>+}y zzig{|je@KB<+g@pFfpOR@N%VCpe6^k#^1R{^MS+}Cf#t+)%|wK1##DQY#O^2XK|n% z@3wRDc+tnT{p+PiuRu{M=pYHq%A&|}Ba!=Hsd<5RskQ}mAY0f$(>-rlxQ?y{#D z#aFM+QkgNlXoWb)M({*zRKZ1I*F%!iVh-CDqNiO)^*|uSEoP{X?2ML~UCjv3(W$P4 z$w|x_j$?5aNZTe&<}EsAtt|+8p>{u%N}|5LU%$(DwNGt|mdv;H*}y<~{S%SY-;!UC zq@neDyR6CJ;K1UX#S+J=WyBWU_fB=TMPV#_Nlexw%V?Rme_HdZIh}9FwW5o&=|if0 zM`gpc+mK#5Y8h{cKvx2-L|=xn0Ls_sP~YOBZmi3r>a$@gkNCI4$4qYwNXBMeV!88# zR;G^cP}cp!qw_|c_|#I_#bRi_%jdDz1p+gh^UK=nA7A9(&~>L7K4vlt^OgtNsWH`n zFh+{`^1~cwfv`xSG;3Xnh-dgLgbBn>8}&mr1P}b9zYt@njB4wRCF>o2(@_~r5)!EM zqfk1z!8gq^`8R%$jt5ufg@|DhH8^y2gS@be6+T&;)Y&C*vXl_}rJIR{0juS&+cwi( z+xe-Z<7Mfsfq3kN6oR19GI_3xUTkoK@kQ9PpsDBjx>e4Lfcp5`ijjH;aOMT(d&>Sld`uWk4 zD#EAFIQ&;JP6D_l{}LD`&U@` z%$tI0hQ5{Wmbu3kY(42*jC<4-LquN;X$D3k;UPyRK>VEuD#D3omQk37P=89yX=Q~&2*3!~{R`aldV#+0Sz z13nd(G@W+NV&eG*474#i8aJgz&6#M#pqrVuy&K?XxMq%SPO}ty#}Fl;8oWe{e$cp1 z%hkJbQa95TkXOZ+)n9sqYRRl4Q~)zChWTJlzthdIQ{mj+O?>_o8 znjw3u*uh>M#r*fCr2jOfq>PhP)%sI3Vi<<(FUos$LxQP>?C;3qzhpvdh4Y4LPmjc$ zJsZqerlKT$Tear^wyxIy=v+xG6HA`&_I09aUauq2B2-lCOGkc4FN}SLp4Jrl{&oUVJFotP2<9$XP2P!8d)R_Xhm+N$HVObdmA+R#abIZ)8}y)o~&Be^rZ03-_9L}b1pK> z&+Nl+ zWq~b!oAL_TtAf3n$s>%)eoV@GoR)Qo$g<@Wh<3kps1KC3)+@Lky#FqK&|EK9sSDbGEf~a*`0zvHJ&G8crS$}rYvt(c z2Uz&z{}}Mt$S;b8U9qpOP%OPbvTDr;l-IV!1cU%S=ibFj=MTD#a%!EuPjPgOuY$mX zX3l%oRS|^mvFe_MN+Zs{9z~#Lj}v*;x|M||gn__+R!xzgW*|Hj7P;^;*|k2r$LV3H zkRb`Z&>wT~;*3v&JI$Y)!6gdc!Cp`rU@_mrcwwn|eO=YP3%vwXj$Maq&0t>r-qrwk zaX;vTX_n1}P8?O%df1V5WR-HR;8UhYf0j-}RW_C9JK?&YiWe7b?2xGk&vXj?Ys zN7|we!oaxm*O+R7T({$D1h1s?;?4Fp-CR-P4#6*>t7-rMep?;aLh!njMc)67Nc70H zvr@$px;>*1oYE+2-DG;CimaINBoK%<`D+7}>#9xug4kL7MM01>y{j9{ALEIU;1lCS$3 z%%*_D54=p^Jo*#mA9Y z-6Qv3xt+)SZMP*nWF}_a0~d_dX%G@X&x0^CV6-@(5^ke{LkN@NOgq7Pt3qCO$&H@k!M3ou)os!1^efqO75D{8;WkANV;Zwvok_0fbVtNDq6;=i#`q%5tj>11sYBVz0!srg! zzg!tbu4XT+m`&0Q5Mux5-t{34L2G00vjHZiz_Bb4bNnxPAm-66tiA|h9Z=*>Ohlh~ z2m}J<(aQFpo@n`x#NY1oe|I9{Kj-`ZKl-1X8T$VcM!VsE4nXn6gcsC1e->;UMo&&w zGECPNf4>N!hCjnrKMK+rH zo;|C1#43UZ{No-JGHZRt#>>l8`eefwo=Ku@-u%Zu4`{&Qc4@XhX>sjx9TnZk0ZJ}R zycGiyik)hNZj%i?6~P7YpJH6hgYoLUff^AaNAWeIA8n06XVY=Gz&#qY8TsE8sXSjs z&*1@p`)$Yn|2iFZp`tYW$RYoB#N{@$Y>tbU^p0q+;~aY~IzJmqnf&aIxxYSoWC6I~ z=FWNo9#70ocuw2B7(;EtTj*J{H8OZg1wl_8{wwb|He!AkC^B2&PHi>b=waQ#nYKH| z&H&sCz`*h_ShU*o99>Q)AIXF$vv=Tg{i`LsS@Q&4!~=zB5~fW*2LhQeJpEsU{-4L# z{tK0KPDrXK=}#zU>GBdcNXD$KfsYx;9x5>c!G%#!-LJYF}Op71CzlQD$V#JIF kwA=G;|8IEtKf;ak8#9#W^WDJ@LKyB8WK=;VugpLGFUy-r3;+NC diff --git a/src/modules/locale/images/orig/timezone_5.5.png b/src/modules/locale/images/orig/timezone_5.5.png deleted file mode 100644 index f904cc29887cb83d0c02d0af7c9aecc13de64ac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6099 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 U2cK!{#4_V!5i*l>(Le0SUvD*69smFU diff --git a/src/modules/locale/images/orig/timezone_7.0.png b/src/modules/locale/images/orig/timezone_7.0.png deleted file mode 100644 index 239115af9bd7e3c508a86102c587276ee58b7961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14412 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 diff --git a/src/modules/locale/images/orig/timezone_8.0.png b/src/modules/locale/images/orig/timezone_8.0.png deleted file mode 100644 index 3627686fda461cb759874807eb4b299ce93da6e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16725 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 pTmAh1%EkZSCI1z_|Bsar?ti4E&_Z5% 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 diff --git a/src/modules/locale/images/orig/timezone_9.5.png b/src/modules/locale/images/orig/timezone_9.5.png deleted file mode 100644 index 1c3290c088b95243f4e4b553a39400887c483563..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1959 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV4TUp3>0zuvh*B~VlH;_4B_D5xc$)o0g%gC z;1OBOz`(W$gc)7$8Uh&%k|nMYCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+>CR zy&m8b;>vHq|NsAgAPGm>k#cahQIe8tg|1h<0Z>FMQqH4RU)o*FI7L}EM!_ae!?VsH zpv~AaOD&|!)W6jjsM5V!FTBqjNCtPA0;Pb0A>C$Sz2*rsZGdFPV#nC2)`_!ifsFVW zHYxM$(-u0UFLKCQ>I7tGFLMHl=dX4xSOY?73mo!SyX3BL&RFD_x5}kpt!vJ5XP|h_ z3g^PLZa|elM)3ysqIGUSK@elTd+8<*koa(E0FdATe;^x# zjs`Xz3IHl-Jr)Q=Ek^=@BCSUQ+fM`mxj+)AtL=CYkO4#;Cxbgq1p`Gu>{G#=r-C7Z zKt|{3kgn4q?I(kPWcQhn?z2D?+5<%ALiaD0KLSh#(@KK;f`L)Z#LU9N%Er#l&cVsa z$;HLP%gf8h$1fl#BrGl=B_%7TsG_c+p{=cFYG!F=?c(C<;pye$=N}Lp8WtWN85JEJ z8y6p+n3$N9nweKtT~k-z+}7US**9V0{P_zOFIll>?Ut?Ewr}6D@4%7cCr+L^efrGh z%U7;lzjgcez55RyK791-`K#A&-n@PL?)~R)-@kwV@$=80fB(E~mn~*sU|Hbl;uunK z>+SW>d}&9KhQRl?GK129;MkOzGk5AOy|e7hncm6o`qw7Ao{PFW_16`*SC;z9Z!f>f zvODXe#t@X+!@$DC#Ms#2;Gm!&Ai%-F!omc?goGd}QB+|F!OTNag&~Bn6|M@4kTL^` z1A$5z;L73FVhUk+gNYGCh+3ZIIKqM9aO6ORx)(zT!)FZ+7($pn!{UDopJDMVlOYp4 zxL_{9h!Oz~G@%dSB~hCazMbejyqT$yMYw$Ke7UgrTf0kKKC|(%GEH?`8@=^mq{v>& zy*baH_+DmVGJNn0mzfsUE+9bW}=V|PX= z1Wem4_WrTk`$l0Frl;b+UL57!=y2`N<@tgfxxQcDT7MLN^0=>$sqvbFoaAW^+FsftU|8+x7i{h zMiUvU8#&z$0v=8Zy01Voh~(d>Ab>y(4iEU5D?hw?cQ*NFlY>I0|F@MVpEkW&wCmS0 zw?>Dqoc2m?dv2DX*5W9=sB~!-ru{Pu_lg|rp6T!PI<(OtW_|Thy;W*7gc_~cLx*o4^VcEM3wzz~859wK-#gkYNCnf1^5I>rSP`X35+ SdVK|!rVO60elF{r5}E+;s&tD0 From b65b5228e11f38e07ef821ac3afe8d39cb02118b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 Aug 2020 14:22:44 +0200 Subject: [PATCH 06/54] [welcome] Don't apply code-style to other C-code --- src/modules/welcome/checker/partman_devices.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/modules/welcome/checker/partman_devices.c b/src/modules/welcome/checker/partman_devices.c index 4fd3dd4c0..caee5759c 100644 --- a/src/modules/welcome/checker/partman_devices.c +++ b/src/modules/welcome/checker/partman_devices.c @@ -19,6 +19,10 @@ * along with Calamares. If not, see . */ +/* This is third-party ancient C code. Don't format it. */ +/* *INDENT-OFF* */ +/* clang-format off */ + #include "partman_devices.h" #include From d6d3b4148449eb0d41ef71dedead791eca33bffd Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Aug 2020 17:36:18 +0200 Subject: [PATCH 07/54] [webview] Missing Config include This was causing CI builds to fail, since WEBVIEW_WITH_WEBKIT is defined only in the Config file, not on the command-line. This crept in accidentally while trying to get rid of that config file entirely. --- src/modules/webview/WebViewStep.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/webview/WebViewStep.cpp b/src/modules/webview/WebViewStep.cpp index 50c270b09..e1261433c 100644 --- a/src/modules/webview/WebViewStep.cpp +++ b/src/modules/webview/WebViewStep.cpp @@ -17,6 +17,7 @@ * along with Calamares. If not, see . */ +#include "WebViewConfig.h" #include "WebViewStep.h" #include From 0b3298fa44b2957103963d28fb0ed8500a618cd7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 00:19:27 +0200 Subject: [PATCH 08/54] REUSE: LICENSES/ files For proper REUSE compliance, untangle the lists of licenses and place a single copy of each license in LICENSES/ . The License-Identifier in each source file refers to these licenses, and FileCopyrightText provides the context, "above notices" and similar attribution data. --- LICENSES/{BSD2 => BSD-2-Clause.txt} | 0 LICENSES/BSD3-SameGame | 49 -- LICENSES/CC-BY-4.0.txt | 324 ++++++++++++++ LICENSES/CC0-1.0.txt | 119 +++++ LICENSE => LICENSES/GPL-3.0-or-later.txt | 0 LICENSES/GPLv2+-libpwquality | 383 ---------------- LICENSES/GPLv3+-ImageRegistry | 16 - LICENSES/{LGPLv2-KDAB => LGPL-2.0-only.txt} | 0 LICENSES/LGPL-2.1-only.txt | 467 ++++++++++++++++++++ LICENSES/LGPL-3.0-or-later.txt | 163 +++++++ LICENSES/LGPLv2.1-Presentation | 83 ---- LICENSES/LGPLv2.1-Presentation-Exception | 22 - LICENSES/LGPLv3-Breeze | 209 --------- LICENSES/MIT-QtWaitingSpinner | 21 - LICENSES/MIT.txt | 19 + 15 files changed, 1092 insertions(+), 783 deletions(-) rename LICENSES/{BSD2 => BSD-2-Clause.txt} (100%) delete mode 100644 LICENSES/BSD3-SameGame create mode 100644 LICENSES/CC-BY-4.0.txt create mode 100644 LICENSES/CC0-1.0.txt rename LICENSE => LICENSES/GPL-3.0-or-later.txt (100%) delete mode 100644 LICENSES/GPLv2+-libpwquality delete mode 100644 LICENSES/GPLv3+-ImageRegistry rename LICENSES/{LGPLv2-KDAB => LGPL-2.0-only.txt} (100%) create mode 100644 LICENSES/LGPL-2.1-only.txt create mode 100644 LICENSES/LGPL-3.0-or-later.txt delete mode 100644 LICENSES/LGPLv2.1-Presentation delete mode 100644 LICENSES/LGPLv2.1-Presentation-Exception delete mode 100644 LICENSES/LGPLv3-Breeze delete mode 100644 LICENSES/MIT-QtWaitingSpinner create mode 100644 LICENSES/MIT.txt diff --git a/LICENSES/BSD2 b/LICENSES/BSD-2-Clause.txt similarity index 100% rename from LICENSES/BSD2 rename to LICENSES/BSD-2-Clause.txt diff --git a/LICENSES/BSD3-SameGame b/LICENSES/BSD3-SameGame deleted file mode 100644 index 9aefc27c5..000000000 --- a/LICENSES/BSD3-SameGame +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ diff --git a/LICENSES/CC-BY-4.0.txt b/LICENSES/CC-BY-4.0.txt new file mode 100644 index 000000000..3f92dfc5f --- /dev/null +++ b/LICENSES/CC-BY-4.0.txt @@ -0,0 +1,324 @@ +Creative Commons Attribution 4.0 International Creative Commons Corporation +("Creative Commons") is not a law firm and does not provide legal services +or legal advice. Distribution of Creative Commons public licenses does not +create a lawyer-client or other relationship. Creative Commons makes its licenses +and related information available on an "as-is" basis. Creative Commons gives +no warranties regarding its licenses, any material licensed under their terms +and conditions, or any related information. Creative Commons disclaims all +liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions +that creators and other rights holders may use to share original works of +authorship and other material subject to copyright and certain other rights +specified in the public license below. The following considerations are for +informational purposes only, are not exhaustive, and do not form part of our +licenses. + +Considerations for licensors: Our public licenses are intended for use by +those authorized to give the public permission to use material in ways otherwise +restricted by copyright and certain other rights. Our licenses are irrevocable. +Licensors should read and understand the terms and conditions of the license +they choose before applying it. Licensors should also secure all rights necessary +before applying our licenses so that the public can reuse the material as +expected. Licensors should clearly mark any material not subject to the license. +This includes other CC-licensed material, or material used under an exception +or limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors + +Considerations for the public: By using one of our public licenses, a licensor +grants the public permission to use the licensed material under specified +terms and conditions. If the licensor's permission is not necessary for any +reason–for example, because of any applicable exception or limitation to copyright–then +that use is not regulated by the license. Our licenses grant only permissions +under copyright and certain other rights that a licensor has authority to +grant. Use of the licensed material may still be restricted for other reasons, +including because others have copyright or other rights in the material. A +licensor may make special requests, such as asking that all changes be marked +or described. Although not required by our licenses, you are encouraged to +respect those requests where reasonable. More considerations for the public +: wiki.creativecommons.org/Considerations_for_licensees Creative Commons Attribution +4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to +be bound by the terms and conditions of this Creative Commons Attribution +4.0 International Public License ("Public License"). To the extent this Public +License may be interpreted as a contract, You are granted the Licensed Rights +in consideration of Your acceptance of these terms and conditions, and the +Licensor grants You such rights in consideration of benefits the Licensor +receives from making the Licensed Material available under these terms and +conditions. + +Section 1 – Definitions. + +a. Adapted Material means material subject to Copyright and Similar Rights +that is derived from or based upon the Licensed Material and in which the +Licensed Material is translated, altered, arranged, transformed, or otherwise +modified in a manner requiring permission under the Copyright and Similar +Rights held by the Licensor. For purposes of this Public License, where the +Licensed Material is a musical work, performance, or sound recording, Adapted +Material is always produced where the Licensed Material is synched in timed +relation with a moving image. + +b. Adapter's License means the license You apply to Your Copyright and Similar +Rights in Your contributions to Adapted Material in accordance with the terms +and conditions of this Public License. + +c. Copyright and Similar Rights means copyright and/or similar rights closely +related to copyright including, without limitation, performance, broadcast, +sound recording, and Sui Generis Database Rights, without regard to how the +rights are labeled or categorized. For purposes of this Public License, the +rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + +d. Effective Technological Measures means those measures that, in the absence +of proper authority, may not be circumvented under laws fulfilling obligations +under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, +and/or similar international agreements. + +e. Exceptions and Limitations means fair use, fair dealing, and/or any other +exception or limitation to Copyright and Similar Rights that applies to Your +use of the Licensed Material. + +f. Licensed Material means the artistic or literary work, database, or other +material to which the Licensor applied this Public License. + +g. Licensed Rights means the rights granted to You subject to the terms and +conditions of this Public License, which are limited to all Copyright and +Similar Rights that apply to Your use of the Licensed Material and that the +Licensor has authority to license. + +h. Licensor means the individual(s) or entity(ies) granting rights under this +Public License. + +i. Share means to provide material to the public by any means or process that +requires permission under the Licensed Rights, such as reproduction, public +display, public performance, distribution, dissemination, communication, or +importation, and to make material available to the public including in ways +that members of the public may access the material from a place and at a time +individually chosen by them. + +j. Sui Generis Database Rights means rights other than copyright resulting +from Directive 96/9/EC of the European Parliament and of the Council of 11 +March 1996 on the legal protection of databases, as amended and/or succeeded, +as well as other essentially equivalent rights anywhere in the world. + +k. You means the individual or entity exercising the Licensed Rights under +this Public License. Your has a corresponding meaning. + +Section 2 – Scope. + + a. License grant. + +1. Subject to the terms and conditions of this Public License, the Licensor +hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, +irrevocable license to exercise the Licensed Rights in the Licensed Material +to: + + A. reproduce and Share the Licensed Material, in whole or in part; and + + B. produce, reproduce, and Share Adapted Material. + +2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions +and Limitations apply to Your use, this Public License does not apply, and +You do not need to comply with its terms and conditions. + + 3. Term. The term of this Public License is specified in Section 6(a). + +4. Media and formats; technical modifications allowed. The Licensor authorizes +You to exercise the Licensed Rights in all media and formats whether now known +or hereafter created, and to make technical modifications necessary to do +so. The Licensor waives and/or agrees not to assert any right or authority +to forbid You from making technical modifications necessary to exercise the +Licensed Rights, including technical modifications necessary to circumvent +Effective Technological Measures. For purposes of this Public License, simply +making modifications authorized by this Section 2(a)(4) never produces Adapted +Material. + + 5. Downstream recipients. + +A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed +Material automatically receives an offer from the Licensor to exercise the +Licensed Rights under the terms and conditions of this Public License. + +B. No downstream restrictions. You may not offer or impose any additional +or different terms or conditions on, or apply any Effective Technological +Measures to, the Licensed Material if doing so restricts exercise of the Licensed +Rights by any recipient of the Licensed Material. + +6. No endorsement. Nothing in this Public License constitutes or may be construed +as permission to assert or imply that You are, or that Your use of the Licensed +Material is, connected with, or sponsored, endorsed, or granted official status +by, the Licensor or others designated to receive attribution as provided in +Section 3(a)(1)(A)(i). + + b. Other rights. + +1. Moral rights, such as the right of integrity, are not licensed under this +Public License, nor are publicity, privacy, and/or other similar personality +rights; however, to the extent possible, the Licensor waives and/or agrees +not to assert any such rights held by the Licensor to the limited extent necessary +to allow You to exercise the Licensed Rights, but not otherwise. + +2. Patent and trademark rights are not licensed under this Public License. + +3. To the extent possible, the Licensor waives any right to collect royalties +from You for the exercise of the Licensed Rights, whether directly or through +a collecting society under any voluntary or waivable statutory or compulsory +licensing scheme. In all other cases the Licensor expressly reserves any right +to collect such royalties. + +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following +conditions. + + a. Attribution. + +1. If You Share the Licensed Material (including in modified form), You must: + +A. retain the following if it is supplied by the Licensor with the Licensed +Material: + +i. identification of the creator(s) of the Licensed Material and any others +designated to receive attribution, in any reasonable manner requested by the +Licensor (including by pseudonym if designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of warranties; + +v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + +B. indicate if You modified the Licensed Material and retain an indication +of any previous modifications; and + +C. indicate the Licensed Material is licensed under this Public License, and +include the text of, or the URI or hyperlink to, this Public License. + +2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner +based on the medium, means, and context in which You Share the Licensed Material. +For example, it may be reasonable to satisfy the conditions by providing a +URI or hyperlink to a resource that includes the required information. + +3. If requested by the Licensor, You must remove any of the information required +by Section 3(a)(1)(A) to the extent reasonably practicable. + +4. If You Share Adapted Material You produce, the Adapter's License You apply +must not prevent recipients of the Adapted Material from complying with this +Public License. + +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to +Your use of the Licensed Material: + +a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, +reuse, reproduce, and Share all or a substantial portion of the contents of +the database; + +b. if You include all or a substantial portion of the database contents in +a database in which You have Sui Generis Database Rights, then the database +in which You have Sui Generis Database Rights (but not its individual contents) +is Adapted Material; and + +c. You must comply with the conditions in Section 3(a) if You Share all or +a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not replace +Your obligations under this Public License where the Licensed Rights include +other Copyright and Similar Rights. + +Section 5 – Disclaimer of Warranties and Limitation of Liability. + +a. Unless otherwise separately undertaken by the Licensor, to the extent possible, +the Licensor offers the Licensed Material as-is and as-available, and makes +no representations or warranties of any kind concerning the Licensed Material, +whether express, implied, statutory, or other. This includes, without limitation, +warranties of title, merchantability, fitness for a particular purpose, non-infringement, +absence of latent or other defects, accuracy, or the presence or absence of +errors, whether or not known or discoverable. Where disclaimers of warranties +are not allowed in full or in part, this disclaimer may not apply to You. + +b. To the extent possible, in no event will the Licensor be liable to You +on any legal theory (including, without limitation, negligence) or otherwise +for any direct, special, indirect, incidental, consequential, punitive, exemplary, +or other losses, costs, expenses, or damages arising out of this Public License +or use of the Licensed Material, even if the Licensor has been advised of +the possibility of such losses, costs, expenses, or damages. Where a limitation +of liability is not allowed in full or in part, this limitation may not apply +to You. + +c. The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most closely +approximates an absolute disclaimer and waiver of all liability. + +Section 6 – Term and Termination. + +a. This Public License applies for the term of the Copyright and Similar Rights +licensed here. However, if You fail to comply with this Public License, then +Your rights under this Public License terminate automatically. + +b. Where Your right to use the Licensed Material has terminated under Section +6(a), it reinstates: + +1. automatically as of the date the violation is cured, provided it is cured +within 30 days of Your discovery of the violation; or + + 2. upon express reinstatement by the Licensor. + +c. For the avoidance of doubt, this Section 6(b) does not affect any right +the Licensor may have to seek remedies for Your violations of this Public +License. + +d. For the avoidance of doubt, the Licensor may also offer the Licensed Material +under separate terms or conditions or stop distributing the Licensed Material +at any time; however, doing so will not terminate this Public License. + + e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +Section 7 – Other Terms and Conditions. + +a. The Licensor shall not be bound by any additional or different terms or +conditions communicated by You unless expressly agreed. + +b. Any arrangements, understandings, or agreements regarding the Licensed +Material not stated herein are separate from and independent of the terms +and conditions of this Public License. + +Section 8 – Interpretation. + +a. For the avoidance of doubt, this Public License does not, and shall not +be interpreted to, reduce, limit, restrict, or impose conditions on any use +of the Licensed Material that could lawfully be made without permission under +this Public License. + +b. To the extent possible, if any provision of this Public License is deemed +unenforceable, it shall be automatically reformed to the minimum extent necessary +to make it enforceable. If the provision cannot be reformed, it shall be severed +from this Public License without affecting the enforceability of the remaining +terms and conditions. + +c. No term or condition of this Public License will be waived and no failure +to comply consented to unless expressly agreed to by the Licensor. + +d. Nothing in this Public License constitutes or may be interpreted as a limitation +upon, or waiver of, any privileges and immunities that apply to the Licensor +or You, including from the legal processes of any jurisdiction or authority. + +Creative Commons is not a party to its public licenses. Notwithstanding, Creative +Commons may elect to apply one of its public licenses to material it publishes +and in those instances will be considered the "Licensor." The text of the +Creative Commons public licenses is dedicated to the public domain under the +CC0 Public Domain Dedication. Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as otherwise +permitted by the Creative Commons policies published at creativecommons.org/policies, +Creative Commons does not authorize the use of the trademark "Creative Commons" +or any other trademark or logo of Creative Commons without its prior written +consent including, without limitation, in connection with any unauthorized +modifications to any of its public licenses or any other arrangements, understandings, +or agreements concerning use of licensed material. For the avoidance of doubt, +this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt new file mode 100644 index 000000000..a343ccd43 --- /dev/null +++ b/LICENSES/CC0-1.0.txt @@ -0,0 +1,119 @@ +Creative Commons Legal Code + +CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES +NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE +AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION +ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE +OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS +LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION +OR WORKS PROVIDED HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive +Copyright and Related Rights (defined below) upon the creator and subsequent +owner(s) (each and all, an "owner") of an original work of authorship and/or +a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the +purpose of contributing to a commons of creative, cultural and scientific +works ("Commons") that the public can reliably and without fear of later claims +of infringement build upon, modify, incorporate in other works, reuse and +redistribute as freely as possible in any form whatsoever and for any purposes, +including without limitation commercial purposes. These owners may contribute +to the Commons to promote the ideal of a free culture and the further production +of creative, cultural and scientific works, or to gain reputation or greater +distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation +of additional consideration or compensation, the person associating CC0 with +a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work +and publicly distribute the Work under its terms, with knowledge of his or +her Copyright and Related Rights in the Work and the meaning and intended +legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be protected +by copyright and related or neighboring rights ("Copyright and Related Rights"). +Copyright and Related Rights include, but are not limited to, the following: + +i. the right to reproduce, adapt, distribute, perform, display, communicate, +and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + +iii. publicity and privacy rights pertaining to a person's image or likeness +depicted in a Work; + +iv. rights protecting against unfair competition in regards to a Work, subject +to the limitations in paragraph 4(a), below; + +v. rights protecting the extraction, dissemination, use and reuse of data +in a Work; + +vi. database rights (such as those arising under Directive 96/9/EC of the +European Parliament and of the Council of 11 March 1996 on the legal protection +of databases, and under any national implementation thereof, including any +amended or successor version of such directive); and + +vii. other similar, equivalent or corresponding rights throughout the world +based on applicable law or treaty, and any national implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright +and Related Rights and associated claims and causes of action, whether now +known or unknown (including existing as well as future claims and causes of +action), in the Work (i) in all territories worldwide, (ii) for the maximum +duration provided by applicable law or treaty (including future time extensions), +(iii) in any current or future medium and for any number of copies, and (iv) +for any purpose whatsoever, including without limitation commercial, advertising +or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the +benefit of each member of the public at large and to the detriment of Affirmer's +heirs and successors, fully intending that such Waiver shall not be subject +to revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be +judged legally invalid or ineffective under applicable law, then the Waiver +shall be preserved to the maximum extent permitted taking into account Affirmer's +express Statement of Purpose. In addition, to the extent the Waiver is so +judged Affirmer hereby grants to each affected person a royalty-free, non +transferable, non sublicensable, non exclusive, irrevocable and unconditional +license to exercise Affirmer's Copyright and Related Rights in the Work (i) +in all territories worldwide, (ii) for the maximum duration provided by applicable +law or treaty (including future time extensions), (iii) in any current or +future medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional purposes +(the "License"). The License shall be deemed effective as of the date CC0 +was applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder of +the License, and in such case Affirmer hereby affirms that he or she will +not (i) exercise any of his or her remaining Copyright and Related Rights +in the Work or (ii) assert any associated claims and causes of action with +respect to the Work, in either case contrary to Affirmer's express Statement +of Purpose. + + 4. Limitations and Disclaimers. + +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, +licensed or otherwise affected by this document. + +b. Affirmer offers the Work as-is and makes no representations or warranties +of any kind concerning the Work, express, implied, statutory or otherwise, +including without limitation warranties of title, merchantability, fitness +for a particular purpose, non infringement, or the absence of latent or other +defects, accuracy, or the present or absence of errors, whether or not discoverable, +all to the greatest extent permissible under applicable law. + +c. Affirmer disclaims responsibility for clearing rights of other persons +that may apply to the Work or any use thereof, including without limitation +any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims +responsibility for obtaining any necessary consents, permissions or other +rights required for any use of the Work. + +d. Affirmer understands and acknowledges that Creative Commons is not a party +to this document and has no duty or obligation with respect to this CC0 or +use of the Work. diff --git a/LICENSE b/LICENSES/GPL-3.0-or-later.txt similarity index 100% rename from LICENSE rename to LICENSES/GPL-3.0-or-later.txt diff --git a/LICENSES/GPLv2+-libpwquality b/LICENSES/GPLv2+-libpwquality deleted file mode 100644 index 5d1984656..000000000 --- a/LICENSES/GPLv2+-libpwquality +++ /dev/null @@ -1,383 +0,0 @@ -Unless otherwise *explicitly* stated the following text describes the -licensed conditions under which the contents of this libpwquality release -may be distributed: - -------------------------------------------------------------------------- -Redistribution and use in source and binary forms of libpwquality, with -or without modification, are permitted provided that the following -conditions are met: - -1. Redistributions of source code must retain any existing copyright - notice, and this entire permission notice in its entirety, - including the disclaimer of warranties. - -2. Redistributions in binary form must reproduce all prior and current - copyright notices, this list of conditions, and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - -3. The name of any author may not be used to endorse or promote - products derived from this software without their specific prior - written permission. - -ALTERNATIVELY, this product may be distributed under the terms of the -GNU General Public License version 2 or later, in which case the provisions -of the GNU GPL are required INSTEAD OF the above restrictions. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -The full text of the GNU GENERAL PUBLIC LICENSE Version 2 is included -below. - -------------------------------------------------------------------------- - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 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. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, 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 software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, 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 redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -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 give any other recipients of the Program a copy of this License -along with the Program. - -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 Program or any portion -of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -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 Program, 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 Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) 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; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, 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 executable. 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. - -If distribution of executable or 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 counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program 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. - - 5. 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 Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program 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. - - 7. 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 Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program 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 Program. - -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. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program 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. - - 9. The Free Software Foundation may publish revised and/or new versions -of the 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 Program -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 Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, 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 - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), 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 Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. 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 program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; 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. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/LICENSES/GPLv3+-ImageRegistry b/LICENSES/GPLv3+-ImageRegistry deleted file mode 100644 index 362e89766..000000000 --- a/LICENSES/GPLv3+-ImageRegistry +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2012, Christian Muehlhaeuser - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ diff --git a/LICENSES/LGPLv2-KDAB b/LICENSES/LGPL-2.0-only.txt similarity index 100% rename from LICENSES/LGPLv2-KDAB rename to LICENSES/LGPL-2.0-only.txt diff --git a/LICENSES/LGPL-2.1-only.txt b/LICENSES/LGPL-2.1-only.txt new file mode 100644 index 000000000..130dffb31 --- /dev/null +++ b/LICENSES/LGPL-2.1-only.txt @@ -0,0 +1,467 @@ +GNU LESSER GENERAL PUBLIC LICENSE + +Version 2.1, February 1999 + +Copyright (C) 1991, 1999 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 Lesser GPL. It also counts as the +successor of the GNU Library Public License, version 2, hence the version +number 2.1.] + +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 Lesser General Public License, applies to some specially +designated software packages--typically libraries--of the Free Software Foundation +and other authors who decide to use it. You can use it too, but we suggest +you first think carefully about whether this license or the ordinary General +Public License is the better strategy to use in any particular case, based +on the explanations below. + +When we speak of free software, we are referring to freedom of use, 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 and use pieces of it in new free programs; and that +you are informed that you can do these things. + +To protect your rights, we need to make restrictions that forbid distributors +to deny you these rights or to ask you to surrender these 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 +other code 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. + +We protect your rights with a two-step method: (1) we copyright the library, +and (2) we offer you this license, which gives you legal permission to copy, +distribute and/or modify the library. + +To protect each distributor, we want to make it very clear that there is no +warranty for the free library. Also, if the library is modified by someone +else and passed on, the recipients should know that what they have is not +the original version, so that the original author's reputation will not be +affected by problems that might be introduced by others. + +Finally, software patents pose a constant threat to the existence of any free +program. We wish to make sure that a company cannot effectively restrict the +users of a free program by obtaining a restrictive license from a patent holder. +Therefore, we insist that any patent license obtained for a version of the +library must be consistent with the full freedom of use specified in this +license. + +Most GNU software, including some libraries, is covered by the ordinary GNU +General Public License. This license, the GNU Lesser General Public License, +applies to certain designated libraries, and is quite different from the ordinary +General Public License. We use this license for certain libraries in order +to permit linking those libraries into non-free programs. + +When a program is linked with a library, whether statically or using a shared +library, the combination of the two is legally speaking a combined work, a +derivative of the original library. The ordinary General Public License therefore +permits such linking only if the entire combination fits its criteria of freedom. +The Lesser General Public License permits more lax criteria for linking other +code with the library. + +We call this license the "Lesser" General Public License because it does Less +to protect the user's freedom than the ordinary General Public License. It +also provides other free software developers Less of an advantage over competing +non-free programs. These disadvantages are the reason we use the ordinary +General Public License for many libraries. However, the Lesser license provides +advantages in certain special circumstances. + +For example, on rare occasions, there may be a special need to encourage the +widest possible use of a certain library, so that it becomes a de-facto standard. +To achieve this, non-free programs must be allowed to use the library. A more +frequent case is that a free library does the same job as widely used non-free +libraries. In this case, there is little to gain by limiting the free library +to free software only, so we use the Lesser General Public License. + +In other cases, permission to use a particular library in non-free programs +enables a greater number of people to use a large body of free software. For +example, permission to use the GNU C Library in non-free programs enables +many more people to use the whole GNU operating system, as well as its variant, +the GNU/Linux operating system. + +Although the Lesser General Public License is Less protective of the users' +freedom, it does ensure that the user of a program that is linked with the +Library has the freedom and the wherewithal to run that program using a modified +version of the Library. + +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, whereas the latter must be combined with the library in +order to run. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License Agreement applies to any software library or other program +which contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Lesser 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 combine 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) Use a suitable shared library mechanism for linking with the Library. A +suitable mechanism is one that (1) uses at run time a copy of the library +already present on the user's computer system, rather than copying library +functions into the executable, and (2) will operate properly with a modified +version of the library, if the user installs one, as long as the modified +version is interface-compatible with the version that the work was made with. + +c) 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. + +d) 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. + +e) 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 materials to be 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 with 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 Lesser 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. + +< one line to give the library's name and an idea of what it does. > + +Copyright (C) < year > < name of author > + +This library is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License as published by the Free +Software Foundation; either version 2.1 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 Lesser General Public License for more +details. + +You should have received a copy of the GNU Lesser 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. + +< signature of Ty Coon > , 1 April 1990 + +Ty Coon, President of Vice + +That's all there is to it! diff --git a/LICENSES/LGPL-3.0-or-later.txt b/LICENSES/LGPL-3.0-or-later.txt new file mode 100644 index 000000000..bd405afbe --- /dev/null +++ b/LICENSES/LGPL-3.0-or-later.txt @@ -0,0 +1,163 @@ +GNU LESSER GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the terms +and conditions of version 3 of the GNU General Public License, supplemented +by the additional permissions listed below. + + 0. Additional Definitions. + + + +As used herein, "this License" refers to version 3 of the GNU Lesser General +Public License, and the "GNU GPL" refers to version 3 of the GNU General Public +License. + + + +"The Library" refers to a covered work governed by this License, other than +an Application or a Combined Work as defined below. + + + +An "Application" is any work that makes use of an interface provided by the +Library, but which is not otherwise based on the Library. Defining a subclass +of a class defined by the Library is deemed a mode of using an interface provided +by the Library. + + + +A "Combined Work" is a work produced by combining or linking an Application +with the Library. The particular version of the Library with which the Combined +Work was made is also called the "Linked Version". + + + +The "Minimal Corresponding Source" for a Combined Work means the Corresponding +Source for the Combined Work, excluding any source code for portions of the +Combined Work that, considered in isolation, are based on the Application, +and not on the Linked Version. + + + +The "Corresponding Application Code" for a Combined Work means the object +code and/or source code for the Application, including any data and utility +programs needed for reproducing the Combined Work from the Application, but +excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + +You may convey a covered work under sections 3 and 4 of this License without +being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + +If you modify a copy of the Library, and, in your modifications, a facility +refers to a function or data to be supplied by an Application that uses the +facility (other than as an argument passed when the facility is invoked), +then you may convey a copy of the modified version: + +a) under this License, provided that you make a good faith effort to ensure +that, in the event an Application does not supply the function or data, the +facility still operates, and performs whatever part of its purpose remains +meaningful, or + +b) under the GNU GPL, with none of the additional permissions of this License +applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + +The object code form of an Application may incorporate material from a header +file that is part of the Library. You may convey such object code under terms +of your choice, provided that, if the incorporated material is not limited +to numerical parameters, data structure layouts and accessors, or small macros, +inline functions and templates (ten or fewer lines in length), you do both +of the following: + +a) Give prominent notice with each copy of the object code that the Library +is used in it and that the Library and its use are covered by this License. + +b) Accompany the object code with a copy of the GNU GPL and this license document. + + 4. Combined Works. + +You may convey a Combined Work under terms of your choice that, taken together, +effectively do not restrict modification of the portions of the Library contained +in the Combined Work and reverse engineering for debugging such modifications, +if you also do each of the following: + +a) Give prominent notice with each copy of the Combined Work that the Library +is used in it and that the Library and its use are covered by this License. + +b) Accompany the Combined Work with a copy of the GNU GPL and this license +document. + +c) For a Combined Work that displays copyright notices during execution, include +the copyright notice for the Library among these notices, as well as a reference +directing the user to the copies of the GNU GPL and this license document. + + d) Do one of the following: + +0) Convey the Minimal Corresponding Source under the terms of this License, +and the Corresponding Application Code in a form suitable for, and under terms +that permit, the user to recombine or relink the Application with a modified +version of the Linked Version to produce a modified Combined Work, in the +manner specified by section 6 of the GNU GPL for conveying Corresponding Source. + +1) Use a suitable shared library mechanism for linking with the Library. A +suitable mechanism is one that (a) uses at run time a copy of the Library +already present on the user's computer system, and (b) will operate properly +with a modified version of the Library that is interface-compatible with the +Linked Version. + +e) Provide Installation Information, but only if you would otherwise be required +to provide such information under section 6 of the GNU GPL, and only to the +extent that such information is necessary to install and execute a modified +version of the Combined Work produced by recombining or relinking the Application +with a modified version of the Linked Version. (If you use option 4d0, the +Installation Information must accompany the Minimal Corresponding Source and +Corresponding Application Code. If you use option 4d1, you must provide the +Installation Information in the manner specified by section 6 of the GNU GPL +for conveying Corresponding Source.) + + 5. Combined Libraries. + +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 that are +not Applications and are not covered by this License, and convey such a combined +library under terms of your choice, if you do both of the following: + +a) Accompany the combined library with a copy of the same work based on the +Library, uncombined with any other library facilities, conveyed under the +terms of this License. + +b) Give prominent notice with the combined library that part of it is a work +based on the Library, and explaining where to find the accompanying uncombined +form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + +The Free Software Foundation may publish revised and/or new versions of the +GNU Lesser 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 as you +received it specifies that a certain numbered version of the GNU Lesser General +Public License "or any later version" applies to it, you have the option of +following the terms and conditions either of that published version or of +any later version published by the Free Software Foundation. If the Library +as you received it does not specify a version number of the GNU Lesser General +Public License, you may choose any version of the GNU Lesser General Public +License ever published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide whether +future versions of the GNU Lesser General Public License shall apply, that +proxy's public statement of acceptance of any version is permanent authorization +for you to choose that version for the Library. diff --git a/LICENSES/LGPLv2.1-Presentation b/LICENSES/LGPLv2.1-Presentation deleted file mode 100644 index 1bb6461eb..000000000 --- a/LICENSES/LGPLv2.1-Presentation +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QML Presentation System. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QML Presentation System. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - diff --git a/LICENSES/LGPLv2.1-Presentation-Exception b/LICENSES/LGPLv2.1-Presentation-Exception deleted file mode 100644 index 7e2e30ff9..000000000 --- a/LICENSES/LGPLv2.1-Presentation-Exception +++ /dev/null @@ -1,22 +0,0 @@ -Digia Qt LGPL Exception version 1.1 - -As an additional permission to the GNU Lesser General Public License version -2.1, the object code form of a "work that uses the Library" may incorporate -material from a header file that is part of the Library. You may distribute -such object code under terms of your choice, provided that: - (i) the header files of the Library have not been modified; and - (ii) the incorporated material is limited to numerical parameters, data - structure layouts, accessors, macros, inline functions and - templates; and - (iii) you comply with the terms of Section 6 of the GNU Lesser General - Public License version 2.1. - -Moreover, you may apply this exception to a modified version of the Library, -provided that such modification does not involve copying material from the -Library into the modified Library's header files unless such material is -limited to (i) numerical parameters; (ii) data structure layouts; -(iii) accessors; and (iv) small macros, templates and inline functions of -five lines or less in length. - -Furthermore, you are not required to apply this additional permission to a -modified version of the Library. diff --git a/LICENSES/LGPLv3-Breeze b/LICENSES/LGPLv3-Breeze deleted file mode 100644 index 63d73657c..000000000 --- a/LICENSES/LGPLv3-Breeze +++ /dev/null @@ -1,209 +0,0 @@ -The Breeze Icon Theme in icons/ - - Copyright (C) 2014 Uri Herrera and others - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 3 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library. If not, see . - -Clarification: - - The GNU Lesser General Public License or LGPL is written for - software libraries in the first place. We expressly want the LGPL to - be valid for this artwork library too. - - KDE Breeze theme icons is a special kind of software library, it is an - artwork library, it's elements can be used in a Graphical User Interface, or - GUI. - - Source code, for this library means: - - where they exist, SVG; - - otherwise, if applicable, the multi-layered formats xcf or psd, or - otherwise png. - - The LGPL in some sections obliges you to make the files carry - notices. With images this is in some cases impossible or hardly useful. - - With this library a notice is placed at a prominent place in the directory - containing the elements. You may follow this practice. - - The exception in section 5 of the GNU Lesser General Public License covers - the use of elements of this art library in a GUI. - - https://vdesign.kde.org/ - ------ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - 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 that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser 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 as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/LICENSES/MIT-QtWaitingSpinner b/LICENSES/MIT-QtWaitingSpinner deleted file mode 100644 index c85c97aeb..000000000 --- a/LICENSES/MIT-QtWaitingSpinner +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Original Work Copyright (c) 2012-2015 Alexander Turkin -Modified 2014 by William Hallatt - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 000000000..204b93da4 --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,19 @@ +MIT License Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From 6851f25d69571fdec3234f280dc678161b18be61 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 00:22:37 +0200 Subject: [PATCH 09/54] REUSE: 3rdparty license fix-up - waitingspinnerwidget is MIT with suitable FileCopyrightText lines - KDSAG is LGPL-2.0-only --- .../kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp | 2 +- .../kdsingleapplicationguard/kdlockedsharedmemorypointer.h | 2 +- 3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp | 2 +- 3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h | 2 +- .../kdsingleapplicationguard/kdsingleapplicationguard.cpp | 2 +- 3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h | 2 +- 3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp | 2 +- 3rdparty/kdsingleapplicationguard/kdtoolsglobal.h | 2 +- 3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp | 2 +- 3rdparty/kdsingleapplicationguard/pimpl_ptr.h | 2 +- 3rdparty/waitingspinnerwidget.cpp | 4 +++- 3rdparty/waitingspinnerwidget.h | 5 ++++- 12 files changed, 17 insertions(+), 12 deletions(-) diff --git a/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp b/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp index 77e95e649..284870e06 100644 --- a/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp +++ b/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.cpp @@ -1,6 +1,6 @@ /* + * SPDX-FileCopyrightText: 2001-2010 Klaralvdalens Datakonsult AB. * SPDX-License-Identifier: LGPL-2.0-only - * License-Filename: LICENSES/LGPLv2-KDAB * * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. */ diff --git a/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.h b/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.h index b9c5d588f..19fdaa082 100644 --- a/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.h +++ b/3rdparty/kdsingleapplicationguard/kdlockedsharedmemorypointer.h @@ -1,6 +1,6 @@ /* + * SPDX-FileCopyrightText: 2001-2010 Klaralvdalens Datakonsult AB. * SPDX-License-Identifier: LGPL-2.0-only - * License-Filename: LICENSES/LGPLv2-KDAB * * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. */ diff --git a/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp b/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp index a13a45a27..3af326193 100644 --- a/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp +++ b/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.cpp @@ -1,6 +1,6 @@ /* + * SPDX-FileCopyrightText: 2001-2010 Klaralvdalens Datakonsult AB. * SPDX-License-Identifier: LGPL-2.0-only - * License-Filename: LICENSES/LGPLv2-KDAB * * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. */ diff --git a/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h b/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h index 82b759283..64b5c267f 100644 --- a/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h +++ b/3rdparty/kdsingleapplicationguard/kdsharedmemorylocker.h @@ -1,6 +1,6 @@ /* + * SPDX-FileCopyrightText: 2001-2010 Klaralvdalens Datakonsult AB. * SPDX-License-Identifier: LGPL-2.0-only - * License-Filename: LICENSES/LGPLv2-KDAB * * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. */ diff --git a/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.cpp b/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.cpp index 8ddf7aad6..52eb60d37 100644 --- a/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.cpp +++ b/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.cpp @@ -1,6 +1,6 @@ /* + * SPDX-FileCopyrightText: 2001-2010 Klaralvdalens Datakonsult AB. * SPDX-License-Identifier: LGPL-2.0-only - * License-Filename: LICENSES/LGPLv2-KDAB * * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. */ diff --git a/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h b/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h index 8ac411a68..8e7c7b498 100644 --- a/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h +++ b/3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h @@ -1,6 +1,6 @@ /* + * SPDX-FileCopyrightText: 2001-2010 Klaralvdalens Datakonsult AB. * SPDX-License-Identifier: LGPL-2.0-only - * License-Filename: LICENSES/LGPLv2-KDAB * * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. */ diff --git a/3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp b/3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp index d3405e82f..f886189c3 100644 --- a/3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp +++ b/3rdparty/kdsingleapplicationguard/kdtoolsglobal.cpp @@ -1,6 +1,6 @@ /* + * SPDX-FileCopyrightText: 2001-2010 Klaralvdalens Datakonsult AB. * SPDX-License-Identifier: LGPL-2.0-only - * License-Filename: LICENSES/LGPLv2-KDAB * * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. */ diff --git a/3rdparty/kdsingleapplicationguard/kdtoolsglobal.h b/3rdparty/kdsingleapplicationguard/kdtoolsglobal.h index 37ca5857e..5086ddd71 100644 --- a/3rdparty/kdsingleapplicationguard/kdtoolsglobal.h +++ b/3rdparty/kdsingleapplicationguard/kdtoolsglobal.h @@ -1,6 +1,6 @@ /* + * SPDX-FileCopyrightText: 2001-2010 Klaralvdalens Datakonsult AB. * SPDX-License-Identifier: LGPL-2.0-only - * License-Filename: LICENSES/LGPLv2-KDAB * * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. */ diff --git a/3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp b/3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp index 35b52d419..f2b0a4dd9 100644 --- a/3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp +++ b/3rdparty/kdsingleapplicationguard/pimpl_ptr.cpp @@ -1,6 +1,6 @@ /* + * SPDX-FileCopyrightText: 2001-2010 Klaralvdalens Datakonsult AB. * SPDX-License-Identifier: LGPL-2.0-only - * License-Filename: LICENSES/LGPLv2-KDAB * * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. */ diff --git a/3rdparty/kdsingleapplicationguard/pimpl_ptr.h b/3rdparty/kdsingleapplicationguard/pimpl_ptr.h index 41b33b582..b8b4786ba 100644 --- a/3rdparty/kdsingleapplicationguard/pimpl_ptr.h +++ b/3rdparty/kdsingleapplicationguard/pimpl_ptr.h @@ -1,6 +1,6 @@ /* + * SPDX-FileCopyrightText: 2001-2010 Klaralvdalens Datakonsult AB. * SPDX-License-Identifier: LGPL-2.0-only - * License-Filename: LICENSES/LGPLv2-KDAB * * The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. */ diff --git a/3rdparty/waitingspinnerwidget.cpp b/3rdparty/waitingspinnerwidget.cpp index 45c689019..98931a6ad 100644 --- a/3rdparty/waitingspinnerwidget.cpp +++ b/3rdparty/waitingspinnerwidget.cpp @@ -1,6 +1,8 @@ /* + * SPDX-FileCopyrightText: 2012-2014 Alexander Turkin + * SPDX-FileCopyrightText: 2014 William Hallatt + * SPDX-FileCopyrightText: 2015 Jacob Dawid * SPDX-License-Identifier: MIT - * License-Filename: LICENSES/MIT-QtWaitingSpinner */ /* Original Work Copyright (c) 2012-2014 Alexander Turkin diff --git a/3rdparty/waitingspinnerwidget.h b/3rdparty/waitingspinnerwidget.h index b3e8df9a0..c8c6b9687 100644 --- a/3rdparty/waitingspinnerwidget.h +++ b/3rdparty/waitingspinnerwidget.h @@ -1,11 +1,14 @@ /* + * SPDX-FileCopyrightText: 2012-2014 Alexander Turkin + * SPDX-FileCopyrightText: 2014 William Hallatt + * SPDX-FileCopyrightText: 2015 Jacob Dawid * SPDX-License-Identifier: MIT - * License-Filename: LICENSES/MIT-QtWaitingSpinner */ /* Original Work Copyright (c) 2012-2014 Alexander Turkin Modified 2014 by William Hallatt Modified 2015 by Jacob Dawid + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to From 31d0b5b19426329dc7e8eb8566684fdb19eb94c9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 00:24:40 +0200 Subject: [PATCH 10/54] REUSE: (BSD-2-Clause) CMakeModules/ The intended license for the CMake modules is BSD-2-Clause; there's no desire to restrict what can be done with these, and CMake modules are generally 2-clause licensed. --- CMakeModules/BoostPython3.cmake | 16 +++++++++++++++- CMakeModules/CMakeColors.cmake | 11 +++++++++++ CMakeModules/CMakeDateStamp.cmake | 8 ++++++++ CMakeModules/CMakeVersionSource.cmake | 7 +++++++ .../CalamaresAddBrandingSubdirectory.cmake | 7 ++++--- CMakeModules/CalamaresAddLibrary.cmake | 7 ++++--- .../CalamaresAddModuleSubdirectory.cmake | 7 ++++--- CMakeModules/CalamaresAddPlugin.cmake | 7 ++++--- CMakeModules/CalamaresAddTest.cmake | 6 +++--- CMakeModules/CalamaresAddTranslations.cmake | 6 +++--- CMakeModules/CalamaresAutomoc.cmake | 6 +++--- CMakeModules/FindCrypt.cmake | 8 ++++++++ CMakeModules/FindLIBPARTED.cmake | 5 +++-- CMakeModules/FindLibPWQuality.cmake | 7 +++++++ CMakeModules/FindPythonQt.cmake | 8 ++++++++ CMakeModules/FindYAMLCPP.cmake | 8 ++++++++ 16 files changed, 100 insertions(+), 24 deletions(-) diff --git a/CMakeModules/BoostPython3.cmake b/CMakeModules/BoostPython3.cmake index 021c1947a..e53f9072d 100644 --- a/CMakeModules/BoostPython3.cmake +++ b/CMakeModules/BoostPython3.cmake @@ -1,3 +1,17 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2014 Aurélien Gâteau +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-FileCopyrightText: 2019 Kevin Kofler +# SPDX-License-Identifier: BSD-2-Clause +# +### +# +# Handles the mess that Boost::Python is before CMake 3.16 and +# Boost 1.70 or so. +# +### +# # On Ubuntu 14.04, the libboost-python1.54-dev package comes with one library # for each Python version: # libboost_python-py27.so @@ -68,7 +82,7 @@ macro( find_boost_python3 boost_version python_version found_var ) endif() set( ${found_var} ${_fbp_found} ) - + # This is superfluous, but allows proper reporting in the features list if ( _fbp_found ) find_package( Boost ${boost_version} COMPONENTS ${_fbp_found} ) diff --git a/CMakeModules/CMakeColors.cmake b/CMakeModules/CMakeColors.cmake index 97739627d..7de050e9b 100644 --- a/CMakeModules/CMakeColors.cmake +++ b/CMakeModules/CMakeColors.cmake @@ -1,3 +1,14 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2014 Kevin Kofler +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# +### +# +# Defines a handful of strings that, with normal xterm handling, +# will change colors in the output, so it's nicer to read. if(NOT WIN32) set(_use_color ON) if("0" STREQUAL "$ENV{CLICOLOR}") diff --git a/CMakeModules/CMakeDateStamp.cmake b/CMakeModules/CMakeDateStamp.cmake index 0b6a3896f..383475ca2 100644 --- a/CMakeModules/CMakeDateStamp.cmake +++ b/CMakeModules/CMakeDateStamp.cmake @@ -1,3 +1,11 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-License-Identifier: BSD-2-Clause +# +### +# +# Find today's date, for versioning purposes. find_program(DATE_EXECUTABLE NAMES date) mark_as_advanced(DATE_EXECUTABLE) diff --git a/CMakeModules/CMakeVersionSource.cmake b/CMakeModules/CMakeVersionSource.cmake index 826546807..69ef8ee59 100644 --- a/CMakeModules/CMakeVersionSource.cmake +++ b/CMakeModules/CMakeVersionSource.cmake @@ -1,3 +1,10 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-License-Identifier: BSD-2-Clause +# +### +# # Try to identify the current development source version. set(CMAKE_VERSION_SOURCE "") if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD) diff --git a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake index 70fcd9279..d0ecbae5d 100644 --- a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake +++ b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake @@ -1,5 +1,9 @@ # === This file is part of Calamares - === # +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or @@ -13,9 +17,6 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0-or-later -# License-Filename: LICENSE -# ### # # Support macros for creating Calamares branding components. diff --git a/CMakeModules/CalamaresAddLibrary.cmake b/CMakeModules/CalamaresAddLibrary.cmake index 901791e30..892653ae6 100644 --- a/CMakeModules/CalamaresAddLibrary.cmake +++ b/CMakeModules/CalamaresAddLibrary.cmake @@ -1,5 +1,9 @@ # === This file is part of Calamares - === # +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or @@ -13,9 +17,6 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0-or-later -# License-Filename: LICENSE -# ### # # Support functions for building plugins. diff --git a/CMakeModules/CalamaresAddModuleSubdirectory.cmake b/CMakeModules/CalamaresAddModuleSubdirectory.cmake index 86f0b8f4c..395cd936e 100644 --- a/CMakeModules/CalamaresAddModuleSubdirectory.cmake +++ b/CMakeModules/CalamaresAddModuleSubdirectory.cmake @@ -1,5 +1,9 @@ # === This file is part of Calamares - === # +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or @@ -13,9 +17,6 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0-or-later -# License-Filename: LICENSE -# ### # # Function and support code for adding a Calamares module (either a Qt / C++ plugin, diff --git a/CMakeModules/CalamaresAddPlugin.cmake b/CMakeModules/CalamaresAddPlugin.cmake index a90e6df63..ad8531511 100644 --- a/CMakeModules/CalamaresAddPlugin.cmake +++ b/CMakeModules/CalamaresAddPlugin.cmake @@ -1,5 +1,9 @@ # === This file is part of Calamares - === # +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or @@ -13,9 +17,6 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0-or-later -# License-Filename: LICENSE -# ### # # Convenience function for creating a C++ (qtplugin) module for Calamares. diff --git a/CMakeModules/CalamaresAddTest.cmake b/CMakeModules/CalamaresAddTest.cmake index 4dd673745..14f9d4144 100644 --- a/CMakeModules/CalamaresAddTest.cmake +++ b/CMakeModules/CalamaresAddTest.cmake @@ -1,5 +1,8 @@ # === This file is part of Calamares - === # +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or @@ -13,9 +16,6 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0-or-later -# License-Filename: LICENSE -# ### # # Support functions for building Calamares tests. diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index 5015301d2..27ee1b917 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -1,5 +1,8 @@ # === This file is part of Calamares - === # +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or @@ -13,9 +16,6 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0-or-later -# License-Filename: LICENSE -# ### # # This file has not yet been documented for use outside of Calamares itself. diff --git a/CMakeModules/CalamaresAutomoc.cmake b/CMakeModules/CalamaresAutomoc.cmake index c9a08a20d..21ce35d9c 100644 --- a/CMakeModules/CalamaresAutomoc.cmake +++ b/CMakeModules/CalamaresAutomoc.cmake @@ -1,5 +1,8 @@ # === This file is part of Calamares - === # +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or @@ -13,9 +16,6 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # -# SPDX-License-Identifier: GPL-3.0-or-later -# License-Filename: LICENSE -# ### # # Helper function for doing automoc, autouic, autorcc on targets, diff --git a/CMakeModules/FindCrypt.cmake b/CMakeModules/FindCrypt.cmake index d17d70178..2a65f9d92 100644 --- a/CMakeModules/FindCrypt.cmake +++ b/CMakeModules/FindCrypt.cmake @@ -1,3 +1,11 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# +### +# # - Find libcrypt # Find the libcrypt includes and the libcrypt libraries # This module defines diff --git a/CMakeModules/FindLIBPARTED.cmake b/CMakeModules/FindLIBPARTED.cmake index 97e7d9758..494271003 100644 --- a/CMakeModules/FindLIBPARTED.cmake +++ b/CMakeModules/FindLIBPARTED.cmake @@ -1,4 +1,5 @@ -# Copyright (C) 2008,2010,2011 by Volker Lanz +# SPDX-FileCopyrightText: 2008,2010,2011 by Volker Lanz +# SPDX-License-Identifier: BSD-2-Clause # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -44,7 +45,7 @@ else (LIBPARTED_FS_RESIZE_LIBRARY) set(LIBPARTED_LIBS ${LIBPARTED_LIBRARY}) endif (LIBPARTED_FS_RESIZE_LIBRARY) -# KDE adds -ansi to the C make flags, parted headers use GNU extensions, so +# KDE adds -ansi to the C make flags, parted headers use GNU extensions, so # undo that unset(CMAKE_C_FLAGS) diff --git a/CMakeModules/FindLibPWQuality.cmake b/CMakeModules/FindLibPWQuality.cmake index 2728afb1e..903c767bb 100644 --- a/CMakeModules/FindLibPWQuality.cmake +++ b/CMakeModules/FindLibPWQuality.cmake @@ -1,3 +1,10 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2018 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# +### +# # Locate libpwquality # https://github.com/libpwquality/libpwquality # diff --git a/CMakeModules/FindPythonQt.cmake b/CMakeModules/FindPythonQt.cmake index 519e1c93e..700b38117 100644 --- a/CMakeModules/FindPythonQt.cmake +++ b/CMakeModules/FindPythonQt.cmake @@ -1,3 +1,11 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2016 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# +### +# # Find PythonQt # # Sets PYTHONQT_FOUND, PYTHONQT_INCLUDE_DIR, PYTHONQT_LIBRARY, PYTHONQT_LIBRARIES diff --git a/CMakeModules/FindYAMLCPP.cmake b/CMakeModules/FindYAMLCPP.cmake index 395c794bb..cc114de92 100644 --- a/CMakeModules/FindYAMLCPP.cmake +++ b/CMakeModules/FindYAMLCPP.cmake @@ -1,3 +1,11 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# +### +# # Locate yaml-cpp # # This module defines From 86f66e8f16bef687682e4203b7cd3c284e0672fa Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 21 Aug 2020 19:43:53 +0200 Subject: [PATCH 11/54] REUSE: (GPL-3.0-or-later) all the schema files - these are vaguely derived from the schema's written by artoo@manjaro.org, but totally re-done for JSON-Schema --- src/modules/bootloader/bootloader.schema.yaml | 2 ++ src/modules/displaymanager/displaymanager.schema.yaml | 2 ++ src/modules/finished/finished.schema.yaml | 2 ++ src/modules/fstab/fstab.schema.yaml | 2 ++ src/modules/grubcfg/grubcfg.schema.yaml | 2 ++ src/modules/initcpio/initcpio.schema.yaml | 2 ++ src/modules/keyboard/keyboard.schema.yaml | 2 ++ src/modules/license/license.schema.yaml | 2 ++ src/modules/locale/locale.schema.yaml | 2 ++ src/modules/luksopenswaphookcfg/luksopenswaphookcfg.schema.yaml | 2 ++ src/modules/machineid/machineid.schema.yaml | 2 ++ src/modules/mount/mount.schema.yaml | 2 ++ src/modules/netinstall/netinstall.schema.yaml | 2 ++ src/modules/packages/packages.schema.yaml | 2 ++ src/modules/partition/partition.schema.yaml | 2 ++ src/modules/plymouthcfg/plymouthcfg.schema.yaml | 2 ++ src/modules/removeuser/removeuser.schema.yaml | 2 ++ src/modules/umount/umount.schema.yaml | 2 ++ src/modules/unpackfs/unpackfs.schema.yaml | 2 ++ src/modules/users/users.schema.yaml | 2 ++ src/modules/welcome/welcome.schema.yaml | 2 ++ 21 files changed, 42 insertions(+) diff --git a/src/modules/bootloader/bootloader.schema.yaml b/src/modules/bootloader/bootloader.schema.yaml index 4670ea3db..152d3ab72 100644 --- a/src/modules/bootloader/bootloader.schema.yaml +++ b/src/modules/bootloader/bootloader.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/bootloader diff --git a/src/modules/displaymanager/displaymanager.schema.yaml b/src/modules/displaymanager/displaymanager.schema.yaml index 08923f726..fc28fd66d 100644 --- a/src/modules/displaymanager/displaymanager.schema.yaml +++ b/src/modules/displaymanager/displaymanager.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/displaymanager diff --git a/src/modules/finished/finished.schema.yaml b/src/modules/finished/finished.schema.yaml index 53189c7fa..380292d1b 100644 --- a/src/modules/finished/finished.schema.yaml +++ b/src/modules/finished/finished.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/finished diff --git a/src/modules/fstab/fstab.schema.yaml b/src/modules/fstab/fstab.schema.yaml index 5b54d767f..fc68fd2c5 100644 --- a/src/modules/fstab/fstab.schema.yaml +++ b/src/modules/fstab/fstab.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/fstab diff --git a/src/modules/grubcfg/grubcfg.schema.yaml b/src/modules/grubcfg/grubcfg.schema.yaml index f010ac694..f1bf2cc03 100644 --- a/src/modules/grubcfg/grubcfg.schema.yaml +++ b/src/modules/grubcfg/grubcfg.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/grubcfg diff --git a/src/modules/initcpio/initcpio.schema.yaml b/src/modules/initcpio/initcpio.schema.yaml index d3fda6be0..2024182bf 100644 --- a/src/modules/initcpio/initcpio.schema.yaml +++ b/src/modules/initcpio/initcpio.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/initcpio diff --git a/src/modules/keyboard/keyboard.schema.yaml b/src/modules/keyboard/keyboard.schema.yaml index 05d98bfde..08a2ababe 100644 --- a/src/modules/keyboard/keyboard.schema.yaml +++ b/src/modules/keyboard/keyboard.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/finished diff --git a/src/modules/license/license.schema.yaml b/src/modules/license/license.schema.yaml index 090b2428e..d933ac15a 100644 --- a/src/modules/license/license.schema.yaml +++ b/src/modules/license/license.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/license diff --git a/src/modules/locale/locale.schema.yaml b/src/modules/locale/locale.schema.yaml index d6c35020f..7aa781127 100644 --- a/src/modules/locale/locale.schema.yaml +++ b/src/modules/locale/locale.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/locale diff --git a/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.schema.yaml b/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.schema.yaml index 426822e27..ed2ae7971 100644 --- a/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.schema.yaml +++ b/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/luksopenswaphookcfg diff --git a/src/modules/machineid/machineid.schema.yaml b/src/modules/machineid/machineid.schema.yaml index c5eb55b1b..8b84f1d22 100644 --- a/src/modules/machineid/machineid.schema.yaml +++ b/src/modules/machineid/machineid.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/machineid diff --git a/src/modules/mount/mount.schema.yaml b/src/modules/mount/mount.schema.yaml index 55ee88644..2d5e4d4a0 100644 --- a/src/modules/mount/mount.schema.yaml +++ b/src/modules/mount/mount.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/mount diff --git a/src/modules/netinstall/netinstall.schema.yaml b/src/modules/netinstall/netinstall.schema.yaml index 739af635e..a66c877d1 100644 --- a/src/modules/netinstall/netinstall.schema.yaml +++ b/src/modules/netinstall/netinstall.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/netinstall diff --git a/src/modules/packages/packages.schema.yaml b/src/modules/packages/packages.schema.yaml index ea0addd10..79f5f21c8 100644 --- a/src/modules/packages/packages.schema.yaml +++ b/src/modules/packages/packages.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/packages diff --git a/src/modules/partition/partition.schema.yaml b/src/modules/partition/partition.schema.yaml index 157f416d7..770b8a645 100644 --- a/src/modules/partition/partition.schema.yaml +++ b/src/modules/partition/partition.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/partition diff --git a/src/modules/plymouthcfg/plymouthcfg.schema.yaml b/src/modules/plymouthcfg/plymouthcfg.schema.yaml index 5100e2cd3..27925ec02 100644 --- a/src/modules/plymouthcfg/plymouthcfg.schema.yaml +++ b/src/modules/plymouthcfg/plymouthcfg.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/plymouthcfg diff --git a/src/modules/removeuser/removeuser.schema.yaml b/src/modules/removeuser/removeuser.schema.yaml index d1fed47fe..c28271716 100644 --- a/src/modules/removeuser/removeuser.schema.yaml +++ b/src/modules/removeuser/removeuser.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/removeuser diff --git a/src/modules/umount/umount.schema.yaml b/src/modules/umount/umount.schema.yaml index 585946fbe..9b81db3d9 100644 --- a/src/modules/umount/umount.schema.yaml +++ b/src/modules/umount/umount.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/umount diff --git a/src/modules/unpackfs/unpackfs.schema.yaml b/src/modules/unpackfs/unpackfs.schema.yaml index b72a5a69b..66c7c0da8 100644 --- a/src/modules/unpackfs/unpackfs.schema.yaml +++ b/src/modules/unpackfs/unpackfs.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/unpackfs diff --git a/src/modules/users/users.schema.yaml b/src/modules/users/users.schema.yaml index 44cb9f71c..310df350f 100644 --- a/src/modules/users/users.schema.yaml +++ b/src/modules/users/users.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/users diff --git a/src/modules/welcome/welcome.schema.yaml b/src/modules/welcome/welcome.schema.yaml index 56a79be06..fbebcd968 100644 --- a/src/modules/welcome/welcome.schema.yaml +++ b/src/modules/welcome/welcome.schema.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later --- $schema: https://json-schema.org/schema# $id: https://calamares.io/schemas/welcome From 0ee0f4081638b49639abe086dc7e28a2b42abd2f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 21 Aug 2020 23:19:41 +0200 Subject: [PATCH 12/54] REUSE: license tags for the scripts and tools in ci/ - remove empty useless HACKING - remove unused cppcheck.sh - migrate the AppImage docs to the wiki (which doesn't moan about licensing) - try a HTML-style comment in the RELEASE docs --- ci/AppImage.md | 45 ----------------------------------------- ci/AppImage.sh | 3 +-- ci/HACKING.md | 1 - ci/RELEASE.md | 5 +++++ ci/RELEASE.sh | 3 +++ ci/astylerc | 4 ++++ ci/calamaresstyle | 4 ++++ ci/configvalidator.py | 1 - ci/coverity-model.c | 3 +++ ci/cppcheck.sh | 4 ---- ci/travis-config.sh | 3 +++ ci/travis-continuous.sh | 3 +++ ci/travis-coverity.sh | 3 +++ ci/travis.sh | 3 +++ ci/txcheck.sh | 2 +- ci/txpull.sh | 4 ++-- ci/txpush.sh | 4 ++-- ci/txreduce.py | 3 +++ ci/txstats.py | 3 +++ 19 files changed, 43 insertions(+), 58 deletions(-) delete mode 100644 ci/AppImage.md delete mode 100644 ci/HACKING.md delete mode 100755 ci/cppcheck.sh diff --git a/ci/AppImage.md b/ci/AppImage.md deleted file mode 100644 index 7fa51a8bc..000000000 --- a/ci/AppImage.md +++ /dev/null @@ -1,45 +0,0 @@ -# AppImage building for Calamares - -> It is possible to build Calamares as an AppImage (perhaps other -> containerized formats as well). This might make sense for -> OEM phase-1 deployments in environments where Calamares is -> not using the native toolkit. - -## AppImage tools - -You will need - - [`linuxdeploy-x86_64.AppImage`](https://github.com/linuxdeploy/linuxdeploy/releases) - - [`linuxdeploy-plugin-qt-x86_64.AppImage`](https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases) - - [`linuxdeploy-plugin-conda.sh`](https://github.com/linuxdeploy/linuxdeploy-plugin-conda) - -These tools should run -- they are bundled as AppImages after all -- on -any modern Linux system. The [AppImage packaging documentation](https://docs.appimage.org/packaging-guide/) -explains how the whole tooling works. - -If the tools are not present, the build script (see below) will download them, -but you should save them for later. - -## AppImage build - -From the **source** directory, run `ci/AppImage.sh`: - - Use `--tools-dir` to copy the tools from a local cache rather than - downloading them again. - - Run it with `--cmake-args` for special CMake handling. - - Use `--skip-build` to avoid rebuilding Calamares all the time. - - Use `--config-dir` to copy in Calamares configuration files (e.g. - *settings.conf* and the module configuration files) from a given - directory. - -The build process will: - - copy (or download) the AppImage tools into a fresh build directory - - configure and build Calamares with suitable settings - - modifies the standard `.desktop` file to be AppImage-compatible - - builds the image with the AppImage tools - -## AppImage caveats - -The resulting AppImage, `Calamares-x86_64.AppImage`, can be run as if it is -a regular Calamares executable. For internal reasons it always passes the -`-X` flag; any other command-line flags are passed in unchanged. Internally, -`XDG_*_DIRS` are used to get Calamares to find the resources inside the AppImage -rather than in the host system. diff --git a/ci/AppImage.sh b/ci/AppImage.sh index 1bb067b1e..116023c53 100755 --- a/ci/AppImage.sh +++ b/ci/AppImage.sh @@ -1,9 +1,8 @@ #! /bin/sh # +# SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # -# Copyright 2019 Adriaan de Groot -# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: diff --git a/ci/HACKING.md b/ci/HACKING.md deleted file mode 100644 index f1c8b750b..000000000 --- a/ci/HACKING.md +++ /dev/null @@ -1 +0,0 @@ -This has moved [to the wiki](https://github.com/calamares/calamares/wiki/Develop-Code). diff --git a/ci/RELEASE.md b/ci/RELEASE.md index 7fa19c26a..3bb6b1b9e 100644 --- a/ci/RELEASE.md +++ b/ci/RELEASE.md @@ -1,5 +1,10 @@ # Calamares Release Process + + > Calamares releases are now rolling when-they-are-ready releases. > Releases are made from *calamares* and tagged there. When, in future, > LTS releases resume, these steps may be edited again. diff --git a/ci/RELEASE.sh b/ci/RELEASE.sh index 82c77c3e2..6f1b198c9 100755 --- a/ci/RELEASE.sh +++ b/ci/RELEASE.sh @@ -1,5 +1,8 @@ #! /bin/sh # +# SPDX-FileCopyrightText: 2018 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# ### USAGE # # Release script for Calamares diff --git a/ci/astylerc b/ci/astylerc index 7fb769a9d..01eda2522 100644 --- a/ci/astylerc +++ b/ci/astylerc @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2014 Aurélien Gâteau +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause + # Do not create a backup file suffix=none diff --git a/ci/calamaresstyle b/ci/calamaresstyle index 19f4a152a..d2ce360bb 100755 --- a/ci/calamaresstyle +++ b/ci/calamaresstyle @@ -1,5 +1,9 @@ #!/bin/sh # +# SPDX-FileCopyrightText: 2014 Aurélien Gâteau +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Calls astyle with settings matching Calamares coding style # Requires astyle >= 2.04 and clang-format-7 -8 or -9 # diff --git a/ci/configvalidator.py b/ci/configvalidator.py index 9d1bc21a5..5c0ee4559 100644 --- a/ci/configvalidator.py +++ b/ci/configvalidator.py @@ -2,7 +2,6 @@ # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause -# License-Filename: LICENSES/BSD2 # usage = """ Validates a Calamares config file -- YAML syntax -- against a schema. diff --git a/ci/coverity-model.c b/ci/coverity-model.c index b4282397c..1d6345335 100644 --- a/ci/coverity-model.c +++ b/ci/coverity-model.c @@ -3,4 +3,7 @@ Calamares doesn't seem to geenerate any false positives, so the model-file is empty. + + SPDX-FileCopyrightText: 2017 Adriaan de Groot + SPDX-License-Identifier: BSD-2-Clause */ diff --git a/ci/cppcheck.sh b/ci/cppcheck.sh deleted file mode 100755 index e55e97ee4..000000000 --- a/ci/cppcheck.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -cd "$WORKSPACE" -cppcheck --enable=all --inconclusive --xml --xml-version=2 src 2> cppcheck.xml \ No newline at end of file diff --git a/ci/travis-config.sh b/ci/travis-config.sh index 565b3deba..15163cc99 100644 --- a/ci/travis-config.sh +++ b/ci/travis-config.sh @@ -1,5 +1,8 @@ # Build configuration on Travis. # +# SPDX-FileCopyrightText: 2018 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Defines a CMAKE_ARGS variable for use with cmake # # This file is sourced by travis.sh, and exports the variables diff --git a/ci/travis-continuous.sh b/ci/travis-continuous.sh index 567a55d3d..ceb80df9b 100755 --- a/ci/travis-continuous.sh +++ b/ci/travis-continuous.sh @@ -1,5 +1,8 @@ #! /bin/sh # +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Travis CI script for use on every-commit: # - build and install Calamares # diff --git a/ci/travis-coverity.sh b/ci/travis-coverity.sh index 78535df65..5ec73568a 100755 --- a/ci/travis-coverity.sh +++ b/ci/travis-coverity.sh @@ -1,5 +1,8 @@ #! /bin/sh # +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Travis CI script for weekly (cron) use: # - use the coverity tool to build and and upload results # diff --git a/ci/travis.sh b/ci/travis.sh index 737da95d4..e182e48bb 100755 --- a/ci/travis.sh +++ b/ci/travis.sh @@ -1,5 +1,8 @@ #! /bin/sh # +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Travis build driver script: # - the regular CI runs, triggered by commits, run a script that builds # and installs calamares, and then runs the tests. diff --git a/ci/txcheck.sh b/ci/txcheck.sh index 229cc8a73..a2fb5a615 100644 --- a/ci/txcheck.sh +++ b/ci/txcheck.sh @@ -3,8 +3,8 @@ ### LICENSE # === This file is part of Calamares - === # -# SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause # # This file is Free Software: you can redistribute it and/or modify # it under the terms of the 2-clause BSD License. diff --git a/ci/txpull.sh b/ci/txpull.sh index 63c70fa49..730e2a3f3 100755 --- a/ci/txpull.sh +++ b/ci/txpull.sh @@ -3,9 +3,9 @@ ### LICENSE # === This file is part of Calamares - === # -# SPDX-License-Identifier: BSD-2-Clause -# SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot # SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause # # This file is Free Software: you can redistribute it and/or modify # it under the terms of the 2-clause BSD License. diff --git a/ci/txpush.sh b/ci/txpush.sh index 00d8d401b..796f6cfc1 100755 --- a/ci/txpush.sh +++ b/ci/txpush.sh @@ -3,9 +3,9 @@ ### LICENSE # === This file is part of Calamares - === # -# SPDX-License-Identifier: BSD-2-Clause -# SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot # SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause # # This file is Free Software: you can redistribute it and/or modify # it under the terms of the 2-clause BSD License. diff --git a/ci/txreduce.py b/ci/txreduce.py index 6e8ae3f35..a556d78fb 100644 --- a/ci/txreduce.py +++ b/ci/txreduce.py @@ -1,5 +1,8 @@ #! /usr/bin/env python3 # +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Reduce a translation file -- generally, a Timezone translation -- by # dropping untranslated strings. An untranslated string is one that # has an empty translation **and** is marked unfinished. diff --git a/ci/txstats.py b/ci/txstats.py index 40fe3f43b..d7997701a 100755 --- a/ci/txstats.py +++ b/ci/txstats.py @@ -1,5 +1,8 @@ #! /usr/bin/env python3 # +# SPDX-FileCopyrightText: 2018 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# # Uses the Transifex API to get a list of enabled languages, # and outputs CMake settings for inclusion into CMakeLists.txt. # From 965bc3b0b45db09fe8666baffdf94e3b0ac1496e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 21 Aug 2020 23:59:35 +0200 Subject: [PATCH 13/54] REUSE: use tag in .ui for license info The .ui files are all GPL-3.0-or-later style, but it's slightly difficult to keep licensing information in them: it's XML, so an XML comment might work, but there's no guarantee that safe/load will preserve them. Put the SPDX tags in the tag, so that it's visible in Qt Designer. --- src/calamares/DebugWindow.ui | 8 ++++++-- src/modules/finished/FinishedPage.ui | 4 ++++ src/modules/keyboard/KeyboardPage.ui | 4 ++++ src/modules/license/LicensePage.ui | 4 ++++ src/modules/netinstall/page_netinst.ui | 4 ++++ src/modules/oemid/OEMPage.ui | 4 ++++ src/modules/packagechooser/page_package.ui | 4 ++++ src/modules/partition/gui/ChoicePage.ui | 4 ++++ src/modules/partition/gui/CreatePartitionDialog.ui | 4 ++++ src/modules/partition/gui/CreatePartitionTableDialog.ui | 4 ++++ src/modules/partition/gui/EditExistingPartitionDialog.ui | 4 ++++ src/modules/partition/gui/EncryptWidget.ui | 4 ++++ src/modules/partition/gui/PartitionPage.ui | 4 ++++ src/modules/partition/gui/ReplaceWidget.ui | 4 ++++ src/modules/partition/gui/VolumeGroupBaseDialog.ui | 4 ++++ src/modules/plasmalnf/page_plasmalnf.ui | 4 ++++ src/modules/tracking/page_trackingstep.ui | 4 ++++ src/modules/users/page_usersetup.ui | 4 ++++ src/modules/welcome/WelcomePage.ui | 4 ++++ 19 files changed, 78 insertions(+), 2 deletions(-) diff --git a/src/calamares/DebugWindow.ui b/src/calamares/DebugWindow.ui index 63a6a840a..014d4837e 100644 --- a/src/calamares/DebugWindow.ui +++ b/src/calamares/DebugWindow.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + Calamares::DebugWindow @@ -52,7 +56,7 @@ - + Type: @@ -66,7 +70,7 @@ - + Interface: diff --git a/src/modules/finished/FinishedPage.ui b/src/modules/finished/FinishedPage.ui index a5b4a9280..c02952b63 100644 --- a/src/modules/finished/FinishedPage.ui +++ b/src/modules/finished/FinishedPage.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + FinishedPage diff --git a/src/modules/keyboard/KeyboardPage.ui b/src/modules/keyboard/KeyboardPage.ui index 5df874b21..f7e430a04 100644 --- a/src/modules/keyboard/KeyboardPage.ui +++ b/src/modules/keyboard/KeyboardPage.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2014 Teo Mrnjavac <teo@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + Page_Keyboard diff --git a/src/modules/license/LicensePage.ui b/src/modules/license/LicensePage.ui index b5936d5de..817775c38 100644 --- a/src/modules/license/LicensePage.ui +++ b/src/modules/license/LicensePage.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2015 demmm <anke62@gmail.com> +SPDX-License-Identifier: GPL-3.0-or-later + LicensePage diff --git a/src/modules/netinstall/page_netinst.ui b/src/modules/netinstall/page_netinst.ui index 32c11ec15..f17e939cd 100644 --- a/src/modules/netinstall/page_netinst.ui +++ b/src/modules/netinstall/page_netinst.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2016 shainer <syn.shainer@gmail.com> +SPDX-License-Identifier: GPL-3.0-or-later + Page_NetInst diff --git a/src/modules/oemid/OEMPage.ui b/src/modules/oemid/OEMPage.ui index b14906537..2194ac24c 100644 --- a/src/modules/oemid/OEMPage.ui +++ b/src/modules/oemid/OEMPage.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2019 Adriaan de Groot <groot@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + OEMPage diff --git a/src/modules/packagechooser/page_package.ui b/src/modules/packagechooser/page_package.ui index 8349f2b52..5cc98b126 100644 --- a/src/modules/packagechooser/page_package.ui +++ b/src/modules/packagechooser/page_package.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2019 Adriaan de Groot <groot@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + PackageChooserPage diff --git a/src/modules/partition/gui/ChoicePage.ui b/src/modules/partition/gui/ChoicePage.ui index 0eca520b3..95b8d145a 100644 --- a/src/modules/partition/gui/ChoicePage.ui +++ b/src/modules/partition/gui/ChoicePage.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + ChoicePage diff --git a/src/modules/partition/gui/CreatePartitionDialog.ui b/src/modules/partition/gui/CreatePartitionDialog.ui index ac355c880..24e05e2e1 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.ui +++ b/src/modules/partition/gui/CreatePartitionDialog.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2014 Aurélien Gâteau <agateau@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + CreatePartitionDialog diff --git a/src/modules/partition/gui/CreatePartitionTableDialog.ui b/src/modules/partition/gui/CreatePartitionTableDialog.ui index ca1255e41..4f9fe5917 100644 --- a/src/modules/partition/gui/CreatePartitionTableDialog.ui +++ b/src/modules/partition/gui/CreatePartitionTableDialog.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2014 Aurélien Gâteau <agateau@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + CreatePartitionTableDialog diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.ui b/src/modules/partition/gui/EditExistingPartitionDialog.ui index c242e3bbc..9c0c996f6 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.ui +++ b/src/modules/partition/gui/EditExistingPartitionDialog.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2014 Aurélien Gâteau <agateau@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + EditExistingPartitionDialog diff --git a/src/modules/partition/gui/EncryptWidget.ui b/src/modules/partition/gui/EncryptWidget.ui index 65af6999e..212300291 100644 --- a/src/modules/partition/gui/EncryptWidget.ui +++ b/src/modules/partition/gui/EncryptWidget.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2016 Teo Mrnjavac <teo@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + EncryptWidget diff --git a/src/modules/partition/gui/PartitionPage.ui b/src/modules/partition/gui/PartitionPage.ui index c028eb513..556c2289d 100644 --- a/src/modules/partition/gui/PartitionPage.ui +++ b/src/modules/partition/gui/PartitionPage.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2014 Aurélien Gâteau <agateau@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + PartitionPage diff --git a/src/modules/partition/gui/ReplaceWidget.ui b/src/modules/partition/gui/ReplaceWidget.ui index 3f8f604b4..14f520f49 100644 --- a/src/modules/partition/gui/ReplaceWidget.ui +++ b/src/modules/partition/gui/ReplaceWidget.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2014 Teo Mrnjavac <teo@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + ReplaceWidget diff --git a/src/modules/partition/gui/VolumeGroupBaseDialog.ui b/src/modules/partition/gui/VolumeGroupBaseDialog.ui index 0640eca00..f1bb6b251 100644 --- a/src/modules/partition/gui/VolumeGroupBaseDialog.ui +++ b/src/modules/partition/gui/VolumeGroupBaseDialog.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2018 Caio <caiojcarvalho@gmail.com> +SPDX-License-Identifier: GPL-3.0-or-later + VolumeGroupBaseDialog diff --git a/src/modules/plasmalnf/page_plasmalnf.ui b/src/modules/plasmalnf/page_plasmalnf.ui index 7b3c8c96f..88d5a39a2 100644 --- a/src/modules/plasmalnf/page_plasmalnf.ui +++ b/src/modules/plasmalnf/page_plasmalnf.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2017 Adriaan de Groot <groot@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + PlasmaLnfPage diff --git a/src/modules/tracking/page_trackingstep.ui b/src/modules/tracking/page_trackingstep.ui index 55a4df094..f66f159f7 100644 --- a/src/modules/tracking/page_trackingstep.ui +++ b/src/modules/tracking/page_trackingstep.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2017 Adriaan de Groot <groot@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + TrackingPage diff --git a/src/modules/users/page_usersetup.ui b/src/modules/users/page_usersetup.ui index d880673b8..e03526a11 100644 --- a/src/modules/users/page_usersetup.ui +++ b/src/modules/users/page_usersetup.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2014 Teo Mrnjavac <teo@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + Page_UserSetup diff --git a/src/modules/welcome/WelcomePage.ui b/src/modules/welcome/WelcomePage.ui index 04b89f256..9460a6c56 100644 --- a/src/modules/welcome/WelcomePage.ui +++ b/src/modules/welcome/WelcomePage.ui @@ -1,5 +1,9 @@ + +SPDX-FileCopyrightText: 2014 Teo Mrnjavac <teo@kde.org> +SPDX-License-Identifier: GPL-3.0-or-later + WelcomePage From 95ceb1e8c7a0a9d341973002cb6079c104040e01 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 00:24:52 +0200 Subject: [PATCH 14/54] REUSE: (BSD-2-Clause) all CMakeLists The build instructions are not that interesting, it's a toss-up between CC0 and BSD-2, but because other CMake bits are BSD-2-Clause, apply that to more CMakeLists. The copyright date isn't all that accurate, but these are just inconsequential files. While here, tidy up and get rid of some useless intermediates. --- CMakeLists.txt | 8 +++++++- lang/CMakeLists.txt | 17 ++--------------- src/CMakeLists.txt | 7 ++++++- src/branding/CMakeLists.txt | 9 +++++++++ src/calamares/CMakeLists.txt | 8 ++++++++ src/libcalamares/CMakeLists.txt | 15 +-------------- src/libcalamaresui/CMakeLists.txt | 6 ++++++ src/modules/CMakeLists.txt | 6 ++++++ src/modules/contextualprocess/CMakeLists.txt | 5 +++++ src/modules/dracutlukscfg/CMakeLists.txt | 5 +++++ src/modules/dummycpp/CMakeLists.txt | 5 +++++ src/modules/finished/CMakeLists.txt | 5 +++++ src/modules/fsresizer/CMakeLists.txt | 5 +++++ src/modules/hostinfo/CMakeLists.txt | 6 ++++++ src/modules/initcpio/CMakeLists.txt | 5 +++++ src/modules/initramfs/CMakeLists.txt | 5 +++++ src/modules/interactiveterminal/CMakeLists.txt | 5 +++++ src/modules/keyboard/CMakeLists.txt | 7 +++++-- src/modules/keyboardq/CMakeLists.txt | 5 +++++ src/modules/license/CMakeLists.txt | 5 +++++ src/modules/locale/CMakeLists.txt | 6 ++++++ src/modules/localeq/CMakeLists.txt | 5 +++++ src/modules/luksbootkeyfile/CMakeLists.txt | 5 +++++ src/modules/machineid/CMakeLists.txt | 5 +++++ src/modules/netinstall/CMakeLists.txt | 5 +++++ src/modules/notesqml/CMakeLists.txt | 5 +++++ src/modules/oemid/CMakeLists.txt | 5 +++++ src/modules/packagechooser/CMakeLists.txt | 5 +++++ src/modules/partition/CMakeLists.txt | 6 ++++++ src/modules/partition/tests/CMakeLists.txt | 5 +++++ src/modules/plasmalnf/CMakeLists.txt | 5 +++++ src/modules/preservefiles/CMakeLists.txt | 5 +++++ src/modules/removeuser/CMakeLists.txt | 5 +++++ src/modules/shellprocess/CMakeLists.txt | 5 +++++ src/modules/summary/CMakeLists.txt | 5 +++++ src/modules/tracking/CMakeLists.txt | 5 +++++ src/modules/users/CMakeLists.txt | 5 +++++ src/modules/usersq/CMakeLists.txt | 5 +++++ src/modules/webview/CMakeLists.txt | 5 +++++ src/modules/welcome/CMakeLists.txt | 7 +++++-- src/modules/welcomeq/CMakeLists.txt | 6 ++++++ src/qml/CMakeLists.txt | 1 - src/qml/calamares/CMakeLists.txt | 13 ++++++++++++- 43 files changed, 226 insertions(+), 37 deletions(-) delete mode 100644 src/qml/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 16ea24fc7..e35253a10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,9 @@ # === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2017 Adriaan de Groot -# SPDX-License-Identifier: GPL-3.0-or-later +# SPDX-License-Identifier: BSD-2-Clause +# +### # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,6 +18,10 @@ # You should have received a copy of the GNU General Public License # along with Calamares. If not, see . # +# Individual files may have different licenses (like the CMake +# infrastructure, which is BSD-2-Clause licensed). Check the SPDX +# identifiers in each file. +# ### # # Generally, this CMakeLists.txt will find all the dependencies for Calamares diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt index efc6d6188..6c9b12b9e 100644 --- a/lang/CMakeLists.txt +++ b/lang/CMakeLists.txt @@ -1,20 +1,7 @@ # === This file is part of Calamares - === # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . -# -# SPDX-License-Identifier: GPL-3.0-or-later -# License-Filename: LICENSE +# SPDX-FileCopyrightText: 2018 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause # ### diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1445b18f3..3d35ac3e4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# include( CalamaresAddPlugin ) include( CalamaresAddModuleSubdirectory ) include( CalamaresAddLibrary ) @@ -10,7 +15,7 @@ add_subdirectory( libcalamares ) add_subdirectory( libcalamaresui ) # all things qml -add_subdirectory( qml ) +add_subdirectory( qml/calamares ) # application add_subdirectory( calamares ) diff --git a/src/branding/CMakeLists.txt b/src/branding/CMakeLists.txt index 981da1468..6d99bbe4d 100644 --- a/src/branding/CMakeLists.txt +++ b/src/branding/CMakeLists.txt @@ -1 +1,10 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# + +# Add branding components. Since there is only one, called "default", +# add that one. For examples of other branding components, see +# the calamares-extensions repository. calamares_add_branding_subdirectory( default ) diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index 5480dd1f8..faec6d1a4 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -1,3 +1,11 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# + +# "calamares_bin" is the main application, not to be confused with +# the target "calamares" which is the non-GUI library part. set( calamaresSources main.cpp CalamaresApplication.cpp diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index 284acd1d2..d915708f3 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -1,20 +1,7 @@ # === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot -# SPDX-License-Identifier: GPL-3.0-or-later -# -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . +# SPDX-License-Identifier: BSD-2-Clause # # diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 773fdf617..52fb838e5 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -1,3 +1,9 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# + # libcalamaresui is the GUI part of Calamares, which includes handling # view modules, view steps, widgets, and branding. diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index d49a4c0c0..da9e1c574 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -1,3 +1,9 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# + # The variable SKIP_MODULES can be set to skip particular modules; # individual modules can also decide they must be skipped (e.g. OS-specific # modules, or ones with unmet dependencies). Collect the skipped modules diff --git a/src/modules/contextualprocess/CMakeLists.txt b/src/modules/contextualprocess/CMakeLists.txt index 2df4cfe37..705f494b5 100644 --- a/src/modules/contextualprocess/CMakeLists.txt +++ b/src/modules/contextualprocess/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( contextualprocess TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/dracutlukscfg/CMakeLists.txt b/src/modules/dracutlukscfg/CMakeLists.txt index 1a07b042d..3620bb92c 100644 --- a/src/modules/dracutlukscfg/CMakeLists.txt +++ b/src/modules/dracutlukscfg/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( dracutlukscfg TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/dummycpp/CMakeLists.txt b/src/modules/dummycpp/CMakeLists.txt index 0841eaa2b..7b219744c 100644 --- a/src/modules/dummycpp/CMakeLists.txt +++ b/src/modules/dummycpp/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( dummycpp TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/finished/CMakeLists.txt b/src/modules/finished/CMakeLists.txt index 6482fb2cd..746683533 100644 --- a/src/modules/finished/CMakeLists.txt +++ b/src/modules/finished/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED DBus Network ) include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) diff --git a/src/modules/fsresizer/CMakeLists.txt b/src/modules/fsresizer/CMakeLists.txt index 6808f1bea..8b23f90b2 100644 --- a/src/modules/fsresizer/CMakeLists.txt +++ b/src/modules/fsresizer/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# find_package( KPMcore 3.3 ) find_package( KF5Config CONFIG ) find_package( KF5I18n CONFIG ) diff --git a/src/modules/hostinfo/CMakeLists.txt b/src/modules/hostinfo/CMakeLists.txt index 3d6e0973f..401f50168 100644 --- a/src/modules/hostinfo/CMakeLists.txt +++ b/src/modules/hostinfo/CMakeLists.txt @@ -1,3 +1,9 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# + # Configuration for hostinfo # # There isn't anything to configure for the hostinfo module. diff --git a/src/modules/initcpio/CMakeLists.txt b/src/modules/initcpio/CMakeLists.txt index 5140c97e0..d51884edc 100644 --- a/src/modules/initcpio/CMakeLists.txt +++ b/src/modules/initcpio/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( initcpio TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/initramfs/CMakeLists.txt b/src/modules/initramfs/CMakeLists.txt index b3287c896..2d64cbc75 100644 --- a/src/modules/initramfs/CMakeLists.txt +++ b/src/modules/initramfs/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( initramfs TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/interactiveterminal/CMakeLists.txt b/src/modules/interactiveterminal/CMakeLists.txt index 5eff610d5..05e3388e3 100644 --- a/src/modules/interactiveterminal/CMakeLists.txt +++ b/src/modules/interactiveterminal/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE) set( kf5_ver 5.41 ) diff --git a/src/modules/keyboard/CMakeLists.txt b/src/modules/keyboard/CMakeLists.txt index c0d8575c6..9dca5f2b0 100644 --- a/src/modules/keyboard/CMakeLists.txt +++ b/src/modules/keyboard/CMakeLists.txt @@ -1,5 +1,8 @@ -include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) - +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( keyboard TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/keyboardq/CMakeLists.txt b/src/modules/keyboardq/CMakeLists.txt index 729748a7f..173275cef 100644 --- a/src/modules/keyboardq/CMakeLists.txt +++ b/src/modules/keyboardq/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# if( NOT WITH_QML ) calamares_skip_module( "keyboardq (QML is not supported in this build)" ) return() diff --git a/src/modules/license/CMakeLists.txt b/src/modules/license/CMakeLists.txt index 164233b3b..b52875da6 100644 --- a/src/modules/license/CMakeLists.txt +++ b/src/modules/license/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) calamares_add_plugin( license diff --git a/src/modules/locale/CMakeLists.txt b/src/modules/locale/CMakeLists.txt index 6f965f041..1e0531c6b 100644 --- a/src/modules/locale/CMakeLists.txt +++ b/src/modules/locale/CMakeLists.txt @@ -1,3 +1,9 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# + # When debugging the timezone widget, add this debugging definition # to have a debugging-friendly timezone widget, debug logging, # and no intrusive timezone-setting while clicking around. diff --git a/src/modules/localeq/CMakeLists.txt b/src/modules/localeq/CMakeLists.txt index c9ed1cd55..28ba76e0e 100644 --- a/src/modules/localeq/CMakeLists.txt +++ b/src/modules/localeq/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# if( NOT WITH_QML ) calamares_skip_module( "localeq (QML is not supported in this build)" ) return() diff --git a/src/modules/luksbootkeyfile/CMakeLists.txt b/src/modules/luksbootkeyfile/CMakeLists.txt index 5e69d3acb..620caee7e 100644 --- a/src/modules/luksbootkeyfile/CMakeLists.txt +++ b/src/modules/luksbootkeyfile/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( luksbootkeyfile TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/machineid/CMakeLists.txt b/src/modules/machineid/CMakeLists.txt index 4a916334c..eb2551d51 100644 --- a/src/modules/machineid/CMakeLists.txt +++ b/src/modules/machineid/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( machineid TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/netinstall/CMakeLists.txt b/src/modules/netinstall/CMakeLists.txt index 0f2cf06f8..588ca1f82 100644 --- a/src/modules/netinstall/CMakeLists.txt +++ b/src/modules/netinstall/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( netinstall TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/notesqml/CMakeLists.txt b/src/modules/notesqml/CMakeLists.txt index 7ac808fa7..c656bebf6 100644 --- a/src/modules/notesqml/CMakeLists.txt +++ b/src/modules/notesqml/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# if( NOT WITH_QML ) calamares_skip_module( "notesqml (QML is not supported in this build)" ) return() diff --git a/src/modules/oemid/CMakeLists.txt b/src/modules/oemid/CMakeLists.txt index 0c4ad03ad..7db23bc30 100644 --- a/src/modules/oemid/CMakeLists.txt +++ b/src/modules/oemid/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( oemid TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/packagechooser/CMakeLists.txt b/src/modules/packagechooser/CMakeLists.txt index d949829de..539db4f73 100644 --- a/src/modules/packagechooser/CMakeLists.txt +++ b/src/modules/packagechooser/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# find_package( Qt5 COMPONENTS Core Gui Widgets REQUIRED ) set( _extra_libraries "" ) set( _extra_src "" ) diff --git a/src/modules/partition/CMakeLists.txt b/src/modules/partition/CMakeLists.txt index 65b1a91e9..5c5d6a6cb 100644 --- a/src/modules/partition/CMakeLists.txt +++ b/src/modules/partition/CMakeLists.txt @@ -1,3 +1,9 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# + # When debugging the partitioning widget, or experimenting, you may # want to allow unsafe partitioning choices (e.g. doing things to the # current disk). Set DEBUG_PARTITION_UNSAFE to allow that (it turns off diff --git a/src/modules/partition/tests/CMakeLists.txt b/src/modules/partition/tests/CMakeLists.txt index 0bd559fd1..a2b99660c 100644 --- a/src/modules/partition/tests/CMakeLists.txt +++ b/src/modules/partition/tests/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# find_package( Qt5 COMPONENTS Gui REQUIRED ) set( PartitionModule_SOURCE_DIR .. ) diff --git a/src/modules/plasmalnf/CMakeLists.txt b/src/modules/plasmalnf/CMakeLists.txt index 93c88b291..8c1ca8c3c 100644 --- a/src/modules/plasmalnf/CMakeLists.txt +++ b/src/modules/plasmalnf/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE) # Requires a sufficiently recent Plasma framework, but also diff --git a/src/modules/preservefiles/CMakeLists.txt b/src/modules/preservefiles/CMakeLists.txt index 571de31ca..afff84050 100644 --- a/src/modules/preservefiles/CMakeLists.txt +++ b/src/modules/preservefiles/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) calamares_add_plugin( preservefiles diff --git a/src/modules/removeuser/CMakeLists.txt b/src/modules/removeuser/CMakeLists.txt index 55798feac..7818926c5 100644 --- a/src/modules/removeuser/CMakeLists.txt +++ b/src/modules/removeuser/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( removeuser TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/shellprocess/CMakeLists.txt b/src/modules/shellprocess/CMakeLists.txt index ec1cf0bcf..5804f5e35 100644 --- a/src/modules/shellprocess/CMakeLists.txt +++ b/src/modules/shellprocess/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( shellprocess TYPE job EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/summary/CMakeLists.txt b/src/modules/summary/CMakeLists.txt index ce71357cd..9aad8b8ac 100644 --- a/src/modules/summary/CMakeLists.txt +++ b/src/modules/summary/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) calamares_add_plugin( summary TYPE viewmodule diff --git a/src/modules/tracking/CMakeLists.txt b/src/modules/tracking/CMakeLists.txt index 894663426..25df2b7ac 100644 --- a/src/modules/tracking/CMakeLists.txt +++ b/src/modules/tracking/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# calamares_add_plugin( tracking TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO diff --git a/src/modules/users/CMakeLists.txt b/src/modules/users/CMakeLists.txt index 7fffc1eea..8f5424827 100644 --- a/src/modules/users/CMakeLists.txt +++ b/src/modules/users/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core DBus Network ) find_package( Crypt REQUIRED ) diff --git a/src/modules/usersq/CMakeLists.txt b/src/modules/usersq/CMakeLists.txt index d780ec9c4..8fb0a282c 100644 --- a/src/modules/usersq/CMakeLists.txt +++ b/src/modules/usersq/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# if( NOT WITH_QML ) calamares_skip_module( "usersq (QML is not supported in this build)" ) return() diff --git a/src/modules/webview/CMakeLists.txt b/src/modules/webview/CMakeLists.txt index 48c707783..3a08f3237 100644 --- a/src/modules/webview/CMakeLists.txt +++ b/src/modules/webview/CMakeLists.txt @@ -1,3 +1,8 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# set( CALA_WEBVIEW_INCLUDE_DIRECTORIES ${PROJECT_BINARY_DIR}/src/libcalamaresui ) set( CALA_WEBVIEW_LINK_LIBRARIES calamaresui ) diff --git a/src/modules/welcome/CMakeLists.txt b/src/modules/welcome/CMakeLists.txt index 9700b1601..0620627a2 100644 --- a/src/modules/welcome/CMakeLists.txt +++ b/src/modules/welcome/CMakeLists.txt @@ -1,5 +1,8 @@ -include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) - +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED DBus Network ) find_package( LIBPARTED ) diff --git a/src/modules/welcomeq/CMakeLists.txt b/src/modules/welcomeq/CMakeLists.txt index 4a040344e..8e36cd5f1 100644 --- a/src/modules/welcomeq/CMakeLists.txt +++ b/src/modules/welcomeq/CMakeLists.txt @@ -1,3 +1,9 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# + # This is a re-write of the welcome module using QML view steps # instead of widgets. diff --git a/src/qml/CMakeLists.txt b/src/qml/CMakeLists.txt deleted file mode 100644 index 8a949d02e..000000000 --- a/src/qml/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_subdirectory( calamares ) diff --git a/src/qml/calamares/CMakeLists.txt b/src/qml/calamares/CMakeLists.txt index 48f8ca96c..b6c2b0048 100644 --- a/src/qml/calamares/CMakeLists.txt +++ b/src/qml/calamares/CMakeLists.txt @@ -1,7 +1,18 @@ -file( GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*" ) +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# + +# Install "slideshows" and other QML-sources for Calamares. +# +# In practice, in the central source repositoy, this means +# just-install-the-slideshow-example. For alternative slideshows, +# see the approach in the calamares-extensions repository. # Iterate over all the subdirectories which have a qmldir file, copy them over to the build dir, # and install them into share/calamares/qml/calamares +file( GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*" ) foreach( SUBDIRECTORY ${SUBDIRECTORIES} ) if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/qmldir" ) From 2eecd431fe25a638b32feb218f624735bbc8cec0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 00:48:30 +0200 Subject: [PATCH 15/54] REUSE: (CC0-1.0) test data There's lots of (YAML) test data that is just trivial configurations for modules. Since the configurations themselves are **also** CC0-1.0, and the tests are less interesting, license them equally liberally. --- src/libcalamares/testdata/yaml-list.conf | 3 +++ src/modules/bootloader/test.yaml | 2 ++ src/modules/fstab/test.yaml | 2 ++ src/modules/grubcfg/tests/1.global | 2 ++ src/modules/grubcfg/tests/2.global | 2 ++ src/modules/grubcfg/tests/2.job | 2 ++ src/modules/grubcfg/tests/3.global | 2 ++ src/modules/grubcfg/tests/3.job | 2 ++ src/modules/grubcfg/tests/4.global | 2 ++ src/modules/grubcfg/tests/4.job | 2 ++ src/modules/grubcfg/tests/CMakeTests.txt | 3 +++ src/modules/mount/test.yaml | 2 ++ src/modules/packages/test.yaml | 2 ++ src/modules/rawfs/tests/1.global | 2 ++ src/modules/rawfs/tests/1.job | 5 ++++- src/modules/rawfs/tests/CMakeTests.txt | 4 ++++ src/modules/unpackfs/tests/1.global | 2 ++ src/modules/unpackfs/tests/2.global | 2 ++ src/modules/unpackfs/tests/3.global | 2 ++ src/modules/unpackfs/tests/3.job | 2 ++ src/modules/unpackfs/tests/4.global | 2 ++ src/modules/unpackfs/tests/4.job | 2 ++ src/modules/unpackfs/tests/5.global | 2 ++ src/modules/unpackfs/tests/5.job | 2 ++ src/modules/unpackfs/tests/6.global | 2 ++ src/modules/unpackfs/tests/6.job | 2 ++ src/modules/unpackfs/tests/7.global | 2 ++ src/modules/unpackfs/tests/7.job | 2 ++ src/modules/unpackfs/tests/8.global | 2 ++ src/modules/unpackfs/tests/8.job | 2 ++ src/modules/unpackfs/tests/9.global | 2 ++ src/modules/unpackfs/tests/9.job | 2 ++ 32 files changed, 70 insertions(+), 1 deletion(-) diff --git a/src/libcalamares/testdata/yaml-list.conf b/src/libcalamares/testdata/yaml-list.conf index d6992b1fb..d8d2178d1 100644 --- a/src/libcalamares/testdata/yaml-list.conf +++ b/src/libcalamares/testdata/yaml-list.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # YAML dump --- "cow": "moo" diff --git a/src/modules/bootloader/test.yaml b/src/modules/bootloader/test.yaml index 1cd6c418f..4623b55f7 100644 --- a/src/modules/bootloader/test.yaml +++ b/src/modules/bootloader/test.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 rootMountPoint: /tmp/mount bootLoader: installPath: /dev/sdb diff --git a/src/modules/fstab/test.yaml b/src/modules/fstab/test.yaml index e95b52e5d..cd2034571 100644 --- a/src/modules/fstab/test.yaml +++ b/src/modules/fstab/test.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 rootMountPoint: /tmp/mount partitions: - device: /dev/sda1 diff --git a/src/modules/grubcfg/tests/1.global b/src/modules/grubcfg/tests/1.global index 02ae840cb..7dedc1527 100644 --- a/src/modules/grubcfg/tests/1.global +++ b/src/modules/grubcfg/tests/1.global @@ -1,2 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- bogus: true diff --git a/src/modules/grubcfg/tests/2.global b/src/modules/grubcfg/tests/2.global index 88f789630..31c6f1166 100644 --- a/src/modules/grubcfg/tests/2.global +++ b/src/modules/grubcfg/tests/2.global @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- bogus: true firmwareType: bios diff --git a/src/modules/grubcfg/tests/2.job b/src/modules/grubcfg/tests/2.job index d7b8db9d1..92e598394 100644 --- a/src/modules/grubcfg/tests/2.job +++ b/src/modules/grubcfg/tests/2.job @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- overwrite: true keepDistributor: false diff --git a/src/modules/grubcfg/tests/3.global b/src/modules/grubcfg/tests/3.global index 45468d4df..f9e1e6954 100644 --- a/src/modules/grubcfg/tests/3.global +++ b/src/modules/grubcfg/tests/3.global @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- bogus: true firmwareType: bios diff --git a/src/modules/grubcfg/tests/3.job b/src/modules/grubcfg/tests/3.job index 7182deeb2..7d579839c 100644 --- a/src/modules/grubcfg/tests/3.job +++ b/src/modules/grubcfg/tests/3.job @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- overwrite: true prefer_grub_d: true # But it doesn't exist diff --git a/src/modules/grubcfg/tests/4.global b/src/modules/grubcfg/tests/4.global index fe24ba6ca..1e8d37fc6 100644 --- a/src/modules/grubcfg/tests/4.global +++ b/src/modules/grubcfg/tests/4.global @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- bogus: true firmwareType: bios diff --git a/src/modules/grubcfg/tests/4.job b/src/modules/grubcfg/tests/4.job index f8f30f21b..58fd8bcb7 100644 --- a/src/modules/grubcfg/tests/4.job +++ b/src/modules/grubcfg/tests/4.job @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- overwrite: true prefer_grub_d: true diff --git a/src/modules/grubcfg/tests/CMakeTests.txt b/src/modules/grubcfg/tests/CMakeTests.txt index 78a0f85ac..54a0721e4 100644 --- a/src/modules/grubcfg/tests/CMakeTests.txt +++ b/src/modules/grubcfg/tests/CMakeTests.txt @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Special cases for grubcfg configuration tests: # - 2.global specifies /tmp/calamares as the rootMountPath, # so we end up editing files there. Create the directory diff --git a/src/modules/mount/test.yaml b/src/modules/mount/test.yaml index e1619296e..ce3e12e4e 100644 --- a/src/modules/mount/test.yaml +++ b/src/modules/mount/test.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 partitions: - device: "/dev/sdb1" mountPoint: "/" diff --git a/src/modules/packages/test.yaml b/src/modules/packages/test.yaml index 8902b657a..130214dfd 100644 --- a/src/modules/packages/test.yaml +++ b/src/modules/packages/test.yaml @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 backend: dummy rootMountPoint: /tmp/mount operations: diff --git a/src/modules/rawfs/tests/1.global b/src/modules/rawfs/tests/1.global index c09df9375..089557d99 100644 --- a/src/modules/rawfs/tests/1.global +++ b/src/modules/rawfs/tests/1.global @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- rootMountPoint: /tmp/unpackfs-test-run-rootdir3/ partitions: diff --git a/src/modules/rawfs/tests/1.job b/src/modules/rawfs/tests/1.job index 6079c43ed..c87a4a70c 100644 --- a/src/modules/rawfs/tests/1.job +++ b/src/modules/rawfs/tests/1.job @@ -1,5 +1,8 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Testing configuration for rawfs - +# --- targets: diff --git a/src/modules/rawfs/tests/CMakeTests.txt b/src/modules/rawfs/tests/CMakeTests.txt index 44a7777c8..ed4c37485 100644 --- a/src/modules/rawfs/tests/CMakeTests.txt +++ b/src/modules/rawfs/tests/CMakeTests.txt @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# # Special cases for rawfs tests # # - On FreeBSD, /proc/mounts doesn't exist (/proc is only about processes, diff --git a/src/modules/unpackfs/tests/1.global b/src/modules/unpackfs/tests/1.global index 02ae840cb..7dedc1527 100644 --- a/src/modules/unpackfs/tests/1.global +++ b/src/modules/unpackfs/tests/1.global @@ -1,2 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- bogus: true diff --git a/src/modules/unpackfs/tests/2.global b/src/modules/unpackfs/tests/2.global index f496ade61..d1e61caf3 100644 --- a/src/modules/unpackfs/tests/2.global +++ b/src/modules/unpackfs/tests/2.global @@ -1,2 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- rootMountPoint: /tmp/unpackfs-test-run-rootdir/ diff --git a/src/modules/unpackfs/tests/3.global b/src/modules/unpackfs/tests/3.global index 2e6b37ab5..1c25cbe20 100644 --- a/src/modules/unpackfs/tests/3.global +++ b/src/modules/unpackfs/tests/3.global @@ -1,2 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- rootMountPoint: /tmp/unpackfs-test-run-rootdir3/ diff --git a/src/modules/unpackfs/tests/3.job b/src/modules/unpackfs/tests/3.job index 429f65b3c..82d353108 100644 --- a/src/modules/unpackfs/tests/3.job +++ b/src/modules/unpackfs/tests/3.job @@ -1,2 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- unpack: [] diff --git a/src/modules/unpackfs/tests/4.global b/src/modules/unpackfs/tests/4.global index 2e6b37ab5..1c25cbe20 100644 --- a/src/modules/unpackfs/tests/4.global +++ b/src/modules/unpackfs/tests/4.global @@ -1,2 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- rootMountPoint: /tmp/unpackfs-test-run-rootdir3/ diff --git a/src/modules/unpackfs/tests/4.job b/src/modules/unpackfs/tests/4.job index ab76dcbeb..8bc7de5ba 100644 --- a/src/modules/unpackfs/tests/4.job +++ b/src/modules/unpackfs/tests/4.job @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- unpack: - source: . diff --git a/src/modules/unpackfs/tests/5.global b/src/modules/unpackfs/tests/5.global index 2e6b37ab5..1c25cbe20 100644 --- a/src/modules/unpackfs/tests/5.global +++ b/src/modules/unpackfs/tests/5.global @@ -1,2 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- rootMountPoint: /tmp/unpackfs-test-run-rootdir3/ diff --git a/src/modules/unpackfs/tests/5.job b/src/modules/unpackfs/tests/5.job index 2f8d732d0..268ee7ce3 100644 --- a/src/modules/unpackfs/tests/5.job +++ b/src/modules/unpackfs/tests/5.job @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- unpack: - source: ./fakesource diff --git a/src/modules/unpackfs/tests/6.global b/src/modules/unpackfs/tests/6.global index 2e6b37ab5..1c25cbe20 100644 --- a/src/modules/unpackfs/tests/6.global +++ b/src/modules/unpackfs/tests/6.global @@ -1,2 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- rootMountPoint: /tmp/unpackfs-test-run-rootdir3/ diff --git a/src/modules/unpackfs/tests/6.job b/src/modules/unpackfs/tests/6.job index c1110a106..1ec0840ca 100644 --- a/src/modules/unpackfs/tests/6.job +++ b/src/modules/unpackfs/tests/6.job @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- unpack: - source: . diff --git a/src/modules/unpackfs/tests/7.global b/src/modules/unpackfs/tests/7.global index 2e6b37ab5..1c25cbe20 100644 --- a/src/modules/unpackfs/tests/7.global +++ b/src/modules/unpackfs/tests/7.global @@ -1,2 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- rootMountPoint: /tmp/unpackfs-test-run-rootdir3/ diff --git a/src/modules/unpackfs/tests/7.job b/src/modules/unpackfs/tests/7.job index a31068e5d..ffd898f1b 100644 --- a/src/modules/unpackfs/tests/7.job +++ b/src/modules/unpackfs/tests/7.job @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- unpack: - source: . diff --git a/src/modules/unpackfs/tests/8.global b/src/modules/unpackfs/tests/8.global index 0cb33ce55..15c308545 100644 --- a/src/modules/unpackfs/tests/8.global +++ b/src/modules/unpackfs/tests/8.global @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- rootMountPoint: /tmp/unpackfs-test-run-rootdir/ localeConf: diff --git a/src/modules/unpackfs/tests/8.job b/src/modules/unpackfs/tests/8.job index a31068e5d..ffd898f1b 100644 --- a/src/modules/unpackfs/tests/8.job +++ b/src/modules/unpackfs/tests/8.job @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- unpack: - source: . diff --git a/src/modules/unpackfs/tests/9.global b/src/modules/unpackfs/tests/9.global index 82ca8f6f6..e7a2cd989 100644 --- a/src/modules/unpackfs/tests/9.global +++ b/src/modules/unpackfs/tests/9.global @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 # This test uses a small destination FS, to make rsync fail --- rootMountPoint: /tmp/unpackfs-test-run-rootdir3/ diff --git a/src/modules/unpackfs/tests/9.job b/src/modules/unpackfs/tests/9.job index 7eabd497c..b89633471 100644 --- a/src/modules/unpackfs/tests/9.job +++ b/src/modules/unpackfs/tests/9.job @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 # This test uses a small destination FS, to make rsync fail --- unpack: From 7e9576d3d1c38d985715e3a34612878b07f798fc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 00:23:09 +0200 Subject: [PATCH 16/54] REUSE: fix credits for 3rd party sources Some Calamares source files incorporate material from 3rd parties (unlike the 3rdparty/ dir, which is basically- unchanged 3rd party source). Tidy up the FileCopyrightText lines for those sources. This is not an exhaustive effort. --- src/libcalamaresui/utils/ImageRegistry.cpp | 21 ++------------------ src/modules/users/CheckPWQuality.cpp | 7 ++++++- src/qml/calamares/slideshow/Presentation.qml | 17 +++++++++------- src/qml/calamares/slideshow/Slide.qml | 2 +- 4 files changed, 19 insertions(+), 28 deletions(-) diff --git a/src/libcalamaresui/utils/ImageRegistry.cpp b/src/libcalamaresui/utils/ImageRegistry.cpp index ebe6858dd..627cf6a8e 100644 --- a/src/libcalamaresui/utils/ImageRegistry.cpp +++ b/src/libcalamaresui/utils/ImageRegistry.cpp @@ -1,28 +1,11 @@ /* === This file is part of Calamares - === * + * SPDX-FileCopyrightText: 2012 Christian Muehlhaeuser + * SPDX-FileCopyrightText: 2019, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSES/GPLv3+-ImageRegistry * - * Copyright 2019, Adriaan de Groot */ -/* - * Copyright 2012, Christian Muehlhaeuser - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - #include "ImageRegistry.h" #include diff --git a/src/modules/users/CheckPWQuality.cpp b/src/modules/users/CheckPWQuality.cpp index 33309df6a..7bce0c09f 100644 --- a/src/modules/users/CheckPWQuality.cpp +++ b/src/modules/users/CheckPWQuality.cpp @@ -1,6 +1,11 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * + * Contains strings from libpwquality under the terms of the + * GPL-3.0-or-later (libpwquality is BSD-3-clause or GPL-2.0-or-later, + * so we pick GPL-3.0-or-later). * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/qml/calamares/slideshow/Presentation.qml b/src/qml/calamares/slideshow/Presentation.qml index 405055b56..dcfb00949 100644 --- a/src/qml/calamares/slideshow/Presentation.qml +++ b/src/qml/calamares/slideshow/Presentation.qml @@ -1,19 +1,22 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-FileCopyrightText: 2016 The Qt Company Ltd. + * SPDX-License-Identifier: LGPL-2.1-only + * + * 2017, Adriaan de Groot * - added looping, keys-instead-of-shortcut - * Copyright 2018, Adriaan de Groot + * 2018, Adriaan de Groot * - make looping a property, drop the 'c' fade-key * - drop navigation through entering a slide number * (this and the 'c' key make sense in a *presentation* * slideshow, not in a passive slideshow like Calamares) * - remove quit key - * Copyright 2019, Adriaan de Groot + * 2019, Adriaan de Groot * - Support "V2" loading * - Disable shortcuts until the content is visible in Calamares - * - * SPDX-License-Identifier: LGPL-2.1-only - * License-Filename: LICENSES/LGPLv2.1-Presentation + * 2020, Adriaan de Groot + * - Updated to SPDX headers */ /**************************************************************************** @@ -87,7 +90,7 @@ Item { // It is used in this example also to keep the keyboard shortcuts // enabled only while the slideshow is active. property bool activatedInCalamares: false - + // Private API property int _lastShownSlide: 0 diff --git a/src/qml/calamares/slideshow/Slide.qml b/src/qml/calamares/slideshow/Slide.qml index dc3e24480..0783cc528 100644 --- a/src/qml/calamares/slideshow/Slide.qml +++ b/src/qml/calamares/slideshow/Slide.qml @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * + * SPDX-FileCopyrightText: 2012 Digia Plc and/or its subsidiary(-ies). * SPDX-License-Identifier: LGPL-2.1-only - * License-Filename: LICENSES/LGPLv2.1-Presentation */ /**************************************************************************** From 3480988f53b15600b449f9f3a42313f6e0468ba2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 20 Aug 2020 22:42:19 +0200 Subject: [PATCH 17/54] REUSE: SPDX tagging of application library and main - CC0-1.0 for the uninteresting version-headers - GPL-3.0-or-later for the services - add SPDX identifiers to Calamares C++ libraries and application sources - add SPDX identifiers to Calamares QML (panels and slideshow) - the `qmldir` is a list of names of things in the directory, so CC0-1.0 it as "uninteresting" - QRC files are lists of names of things in the directory, so CC0-1.0 them as well --- lang/calamares_i18n.qrc.in | 10 ++++++--- src/calamares/CalamaresApplication.cpp | 5 +++-- src/calamares/CalamaresApplication.h | 5 +++-- src/calamares/CalamaresWindow.cpp | 9 ++++---- src/calamares/CalamaresWindow.h | 5 +++-- src/calamares/DebugWindow.cpp | 5 +++-- src/calamares/DebugWindow.h | 5 +++-- src/calamares/VariantModel.cpp | 3 ++- src/calamares/VariantModel.h | 3 ++- src/calamares/calamares-navigation.qml | 10 +++++++++ src/calamares/calamares-sidebar.qml | 12 +++++++++++ src/calamares/calamares.qrc | 14 ++++++++----- src/calamares/main.cpp | 5 +++-- .../progresstree/ProgressTreeDelegate.cpp | 5 +++-- .../progresstree/ProgressTreeDelegate.h | 5 +++-- .../progresstree/ProgressTreeView.cpp | 3 ++- src/calamares/progresstree/ProgressTreeView.h | 5 +++-- src/calamares/test_conf.cpp | 3 ++- src/calamares/testmain.cpp | 3 ++- src/libcalamares/CalamaresVersion.h.in | 2 ++ src/libcalamares/CalamaresVersionX.h.in | 3 +++ src/libcalamares/partition/FileSystem.cpp | 4 +--- src/libcalamares/partition/KPMManager.cpp | 4 +--- src/libcalamares/partition/KPMManager.h | 6 ++---- src/libcalamares/partition/Mount.cpp | 6 ++---- src/libcalamares/partition/Mount.h | 6 ++---- .../partition/PartitionIterator.cpp | 6 ++---- .../partition/PartitionIterator.h | 6 ++---- src/libcalamares/partition/PartitionQuery.cpp | 6 ++---- src/libcalamares/partition/PartitionQuery.h | 6 ++---- src/libcalamares/partition/PartitionSize.cpp | 6 ++---- src/libcalamares/partition/PartitionSize.h | 6 ++---- src/libcalamares/partition/Sync.cpp | 6 ++---- src/libcalamares/partition/Sync.h | 6 ++---- src/libcalamares/partition/Tests.cpp | 4 +--- src/libcalamares/partition/Tests.h | 6 ++---- src/libcalamaresui/Branding.cpp | 9 ++++---- src/libcalamaresui/Branding.h | 9 ++++---- src/libcalamaresui/ViewManager.cpp | 9 ++++---- src/libcalamaresui/ViewManager.h | 5 +++-- src/libcalamaresui/libcalamaresui.qrc | 6 +++++- .../modulesystem/CppJobModule.cpp | 5 +++-- .../modulesystem/CppJobModule.h | 7 ++++--- .../modulesystem/ModuleFactory.cpp | 5 +++-- .../modulesystem/ModuleFactory.h | 5 +++-- .../modulesystem/ModuleManager.h | 5 +++-- .../modulesystem/ProcessJobModule.cpp | 3 ++- .../modulesystem/ProcessJobModule.h | 5 +++-- .../modulesystem/PythonJobModule.cpp | 3 ++- .../modulesystem/PythonJobModule.h | 3 ++- .../modulesystem/PythonQtViewModule.cpp | 7 ++++--- .../modulesystem/PythonQtViewModule.h | 3 ++- .../modulesystem/ViewModule.cpp | 5 +++-- src/libcalamaresui/modulesystem/ViewModule.h | 5 +++-- .../utils/CalamaresUtilsGui.cpp | 5 +++-- src/libcalamaresui/utils/CalamaresUtilsGui.h | 5 +++-- src/libcalamaresui/utils/ImageRegistry.h | 21 ++----------------- src/libcalamaresui/utils/Paste.cpp | 3 ++- src/libcalamaresui/utils/Paste.h | 3 ++- src/libcalamaresui/utils/PythonQtUtils.cpp | 3 ++- src/libcalamaresui/utils/PythonQtUtils.h | 3 ++- src/libcalamaresui/utils/Qml.cpp | 3 ++- src/libcalamaresui/utils/Qml.h | 3 ++- .../viewpages/BlankViewStep.cpp | 3 ++- src/libcalamaresui/viewpages/BlankViewStep.h | 3 ++- .../viewpages/ExecutionViewStep.cpp | 7 ++++--- .../viewpages/ExecutionViewStep.h | 5 +++-- .../PythonQtGlobalStorageWrapper.cpp | 3 ++- .../viewpages/PythonQtGlobalStorageWrapper.h | 5 +++-- src/libcalamaresui/viewpages/PythonQtJob.cpp | 3 ++- src/libcalamaresui/viewpages/PythonQtJob.h | 3 ++- .../viewpages/PythonQtUtilsWrapper.cpp | 5 +++-- .../viewpages/PythonQtUtilsWrapper.h | 3 ++- .../viewpages/PythonQtViewStep.cpp | 5 +++-- .../viewpages/PythonQtViewStep.h | 3 ++- src/libcalamaresui/viewpages/QmlViewStep.cpp | 3 ++- src/libcalamaresui/viewpages/QmlViewStep.h | 3 ++- src/libcalamaresui/viewpages/Slideshow.cpp | 7 ++++--- src/libcalamaresui/viewpages/Slideshow.h | 7 ++++--- src/libcalamaresui/viewpages/ViewStep.cpp | 5 +++-- src/libcalamaresui/viewpages/ViewStep.h | 5 +++-- src/libcalamaresui/widgets/ClickableLabel.cpp | 3 ++- src/libcalamaresui/widgets/ClickableLabel.h | 5 +++-- .../widgets/FixedAspectRatioLabel.cpp | 5 +++-- .../widgets/FixedAspectRatioLabel.h | 5 +++-- .../widgets/PrettyRadioButton.cpp | 3 ++- .../widgets/PrettyRadioButton.h | 3 ++- src/libcalamaresui/widgets/WaitingWidget.cpp | 5 +++-- src/libcalamaresui/widgets/WaitingWidget.h | 3 ++- src/qml/calamares/slideshow/BackButton.qml | 3 ++- src/qml/calamares/slideshow/ForwardButton.qml | 3 ++- src/qml/calamares/slideshow/NavButton.qml | 13 ++++++------ src/qml/calamares/slideshow/SlideCounter.qml | 3 ++- src/qml/calamares/slideshow/qmldir | 3 +++ 94 files changed, 276 insertions(+), 211 deletions(-) diff --git a/lang/calamares_i18n.qrc.in b/lang/calamares_i18n.qrc.in index 1f0ac1604..dd7931e09 100644 --- a/lang/calamares_i18n.qrc.in +++ b/lang/calamares_i18n.qrc.in @@ -1,5 +1,9 @@ - - + + + + @calamares_i18n_qrc_content@ - + diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index d337f774c..2b93cc9d1 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/CalamaresApplication.h b/src/calamares/CalamaresApplication.h index f42c21b56..b36577591 100644 --- a/src/calamares/CalamaresApplication.h +++ b/src/calamares/CalamaresApplication.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018-2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/CalamaresWindow.cpp b/src/calamares/CalamaresWindow.cpp index 28b9df626..2119670be 100644 --- a/src/calamares/CalamaresWindow.cpp +++ b/src/calamares/CalamaresWindow.cpp @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot - * Copyright 2018, Raul Rodrigo Segura (raurodse) - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Raul Rodrigo Segura (raurodse) + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/CalamaresWindow.h b/src/calamares/CalamaresWindow.h index e6c27fd3f..9fa13b44f 100644 --- a/src/calamares/CalamaresWindow.h +++ b/src/calamares/CalamaresWindow.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/DebugWindow.cpp b/src/calamares/DebugWindow.cpp index 9e2bdc501..c5effb45f 100644 --- a/src/calamares/DebugWindow.cpp +++ b/src/calamares/DebugWindow.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/DebugWindow.h b/src/calamares/DebugWindow.h index 764a141c2..e0e939912 100644 --- a/src/calamares/DebugWindow.h +++ b/src/calamares/DebugWindow.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/VariantModel.cpp b/src/calamares/VariantModel.cpp index 2d8313665..9753787ad 100644 --- a/src/calamares/VariantModel.cpp +++ b/src/calamares/VariantModel.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/VariantModel.h b/src/calamares/VariantModel.h index bdf6da866..7deafc88d 100644 --- a/src/calamares/VariantModel.h +++ b/src/calamares/VariantModel.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/calamares-navigation.qml b/src/calamares/calamares-navigation.qml index 6b356218d..131926175 100644 --- a/src/calamares/calamares-navigation.qml +++ b/src/calamares/calamares-navigation.qml @@ -1,3 +1,13 @@ +/* Sample of QML navigation. + + SPDX-FileCopyrightText: 2020 Adriaan de Groot + SPDX-License-Identifier: GPL-3.0-or-later + + + The navigation panel is generally "horizontal" in layout, with + buttons for next and previous; this particular one copies + the layout and size of the widgets panel. +*/ import io.calamares.ui 1.0 import io.calamares.core 1.0 diff --git a/src/calamares/calamares-sidebar.qml b/src/calamares/calamares-sidebar.qml index 85d1d506d..c12dd6e34 100644 --- a/src/calamares/calamares-sidebar.qml +++ b/src/calamares/calamares-sidebar.qml @@ -1,3 +1,15 @@ +/* Sample of QML progress tree. + + SPDX-FileCopyrightText: 2020 Adriaan de Groot + SPDX-License-Identifier: GPL-3.0-or-later + + + The progress tree (actually a list) is generally "vertical" in layout, + with the steps going "down", but it could also be a more compact + horizontal layout with suitable branding settings. + + This example emulates the layout and size of the widgets progress tree. +*/ import io.calamares.ui 1.0 import io.calamares.core 1.0 diff --git a/src/calamares/calamares.qrc b/src/calamares/calamares.qrc index 17db2e08a..5733ea065 100644 --- a/src/calamares/calamares.qrc +++ b/src/calamares/calamares.qrc @@ -1,6 +1,10 @@ - - - calamares-sidebar.qml - calamares-navigation.qml - + + + + + calamares-sidebar.qml + calamares-navigation.qml + diff --git a/src/calamares/main.cpp b/src/calamares/main.cpp index 4ca089102..c5815154f 100644 --- a/src/calamares/main.cpp +++ b/src/calamares/main.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/progresstree/ProgressTreeDelegate.cpp b/src/calamares/progresstree/ProgressTreeDelegate.cpp index 7b7101f5d..a11cd3795 100644 --- a/src/calamares/progresstree/ProgressTreeDelegate.cpp +++ b/src/calamares/progresstree/ProgressTreeDelegate.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, 2019-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/progresstree/ProgressTreeDelegate.h b/src/calamares/progresstree/ProgressTreeDelegate.h index d36bd4d14..7a2641b7d 100644 --- a/src/calamares/progresstree/ProgressTreeDelegate.h +++ b/src/calamares/progresstree/ProgressTreeDelegate.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/progresstree/ProgressTreeView.cpp b/src/calamares/progresstree/ProgressTreeView.cpp index 22b11bfc6..ad8effd66 100644 --- a/src/calamares/progresstree/ProgressTreeView.cpp +++ b/src/calamares/progresstree/ProgressTreeView.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/progresstree/ProgressTreeView.h b/src/calamares/progresstree/ProgressTreeView.h index 4a1bf9f2d..b72291a92 100644 --- a/src/calamares/progresstree/ProgressTreeView.h +++ b/src/calamares/progresstree/ProgressTreeView.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/test_conf.cpp b/src/calamares/test_conf.cpp index 06247bfed..18330d9a2 100644 --- a/src/calamares/test_conf.cpp +++ b/src/calamares/test_conf.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index d70ee70b5..6e4384b62 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamares/CalamaresVersion.h.in b/src/libcalamares/CalamaresVersion.h.in index 54a44888a..09ef9ae2c 100644 --- a/src/libcalamares/CalamaresVersion.h.in +++ b/src/libcalamares/CalamaresVersion.h.in @@ -1,3 +1,5 @@ +// SPDX-FileCopyrightText: no +// SPDX-License-Identifier: CC0-1.0 #ifndef CALAMARES_VERSION_H #define CALAMARES_VERSION_H diff --git a/src/libcalamares/CalamaresVersionX.h.in b/src/libcalamares/CalamaresVersionX.h.in index 75b124c11..be3a9ae21 100644 --- a/src/libcalamares/CalamaresVersionX.h.in +++ b/src/libcalamares/CalamaresVersionX.h.in @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: no +// SPDX-License-Identifier: CC0-1.0 +// // Same as CalamaresVersion.h, but with a full-git-extended VERSION // rather than the short (vM.m.p) semantic version. #ifndef CALAMARES_VERSION_H diff --git a/src/libcalamares/partition/FileSystem.cpp b/src/libcalamares/partition/FileSystem.cpp index 6fda6b41a..ee4a9f5b1 100644 --- a/src/libcalamares/partition/FileSystem.cpp +++ b/src/libcalamares/partition/FileSystem.cpp @@ -3,6 +3,7 @@ * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,9 +18,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #include "FileSystem.h" diff --git a/src/libcalamares/partition/KPMManager.cpp b/src/libcalamares/partition/KPMManager.cpp index 00b4a6491..1f3c5b5fc 100644 --- a/src/libcalamares/partition/KPMManager.cpp +++ b/src/libcalamares/partition/KPMManager.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,9 +16,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #include "KPMManager.h" diff --git a/src/libcalamares/partition/KPMManager.h b/src/libcalamares/partition/KPMManager.h index be5ae00c0..2c73bfed3 100644 --- a/src/libcalamares/partition/KPMManager.h +++ b/src/libcalamares/partition/KPMManager.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,9 +16,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ /* diff --git a/src/libcalamares/partition/Mount.cpp b/src/libcalamares/partition/Mount.cpp index f9a45fafd..a110f2882 100644 --- a/src/libcalamares/partition/Mount.cpp +++ b/src/libcalamares/partition/Mount.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,9 +17,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #include "Mount.h" diff --git a/src/libcalamares/partition/Mount.h b/src/libcalamares/partition/Mount.h index c08d5ac75..a1a0dea65 100644 --- a/src/libcalamares/partition/Mount.h +++ b/src/libcalamares/partition/Mount.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,9 +17,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #ifndef PARTITION_MOUNT_H diff --git a/src/libcalamares/partition/PartitionIterator.cpp b/src/libcalamares/partition/PartitionIterator.cpp index f4e57fbad..6e030346d 100644 --- a/src/libcalamares/partition/PartitionIterator.cpp +++ b/src/libcalamares/partition/PartitionIterator.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,9 +18,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #include "PartitionIterator.h" diff --git a/src/libcalamares/partition/PartitionIterator.h b/src/libcalamares/partition/PartitionIterator.h index 03a03faba..4e3d4362d 100644 --- a/src/libcalamares/partition/PartitionIterator.h +++ b/src/libcalamares/partition/PartitionIterator.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,9 +18,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ diff --git a/src/libcalamares/partition/PartitionQuery.cpp b/src/libcalamares/partition/PartitionQuery.cpp index 0aba728b3..8a2039b61 100644 --- a/src/libcalamares/partition/PartitionQuery.cpp +++ b/src/libcalamares/partition/PartitionQuery.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,9 +18,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #include "PartitionQuery.h" diff --git a/src/libcalamares/partition/PartitionQuery.h b/src/libcalamares/partition/PartitionQuery.h index 595d82c0f..ac241a259 100644 --- a/src/libcalamares/partition/PartitionQuery.h +++ b/src/libcalamares/partition/PartitionQuery.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,9 +18,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ /* diff --git a/src/libcalamares/partition/PartitionSize.cpp b/src/libcalamares/partition/PartitionSize.cpp index d84fd81c6..38e0366c0 100644 --- a/src/libcalamares/partition/PartitionSize.cpp +++ b/src/libcalamares/partition/PartitionSize.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,9 +17,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ diff --git a/src/libcalamares/partition/PartitionSize.h b/src/libcalamares/partition/PartitionSize.h index f70aa3c89..35c6cdb8d 100644 --- a/src/libcalamares/partition/PartitionSize.h +++ b/src/libcalamares/partition/PartitionSize.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,9 +17,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #ifndef PARTITION_PARTITIONSIZE_H diff --git a/src/libcalamares/partition/Sync.cpp b/src/libcalamares/partition/Sync.cpp index d1f6378cd..fb7b31788 100644 --- a/src/libcalamares/partition/Sync.cpp +++ b/src/libcalamares/partition/Sync.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,9 +16,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #include "Sync.h" diff --git a/src/libcalamares/partition/Sync.h b/src/libcalamares/partition/Sync.h index a291058e7..bb1938c8b 100644 --- a/src/libcalamares/partition/Sync.h +++ b/src/libcalamares/partition/Sync.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,9 +16,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #ifndef PARTITION_SYNC_H diff --git a/src/libcalamares/partition/Tests.cpp b/src/libcalamares/partition/Tests.cpp index e52b8edf1..d69e80fc1 100644 --- a/src/libcalamares/partition/Tests.cpp +++ b/src/libcalamares/partition/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,9 +16,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #include "Tests.h" diff --git a/src/libcalamares/partition/Tests.h b/src/libcalamares/partition/Tests.h index c495fa0fd..31983c2f6 100644 --- a/src/libcalamares/partition/Tests.h +++ b/src/libcalamares/partition/Tests.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === - * + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,9 +16,6 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . * - * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE - * */ #ifndef LIBCALAMARES_PARTITION_TESTS_H diff --git a/src/libcalamaresui/Branding.cpp b/src/libcalamaresui/Branding.cpp index 4cfe7ea40..c14f33b85 100644 --- a/src/libcalamaresui/Branding.cpp +++ b/src/libcalamaresui/Branding.cpp @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot - * Copyright 2018, Raul Rodrigo Segura (raurodse) - * Copyright 2019, Camilo Higuita + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Raul Rodrigo Segura (raurodse) + * SPDX-FileCopyrightText: 2019 Camilo Higuita + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/Branding.h b/src/libcalamaresui/Branding.h index 764845fec..65b7d9642 100644 --- a/src/libcalamaresui/Branding.h +++ b/src/libcalamaresui/Branding.h @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot - * Copyright 2018, Raul Rodrigo Segura (raurodse) - * Copyright 2019, Camilo Higuita + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Raul Rodrigo Segura (raurodse) + * SPDX-FileCopyrightText: 2019 Camilo Higuita + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index a39fc141f..e0a206cae 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Dominic Hayes - * Copyright 2019, Gabriel Craciunescu - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Dominic Hayes + * SPDX-FileCopyrightText: 2019 Gabriel Craciunescu + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/ViewManager.h b/src/libcalamaresui/ViewManager.h index 683b335d1..208f744a4 100644 --- a/src/libcalamaresui/ViewManager.h +++ b/src/libcalamaresui/ViewManager.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/libcalamaresui.qrc b/src/libcalamaresui/libcalamaresui.qrc index eeb3fc490..62a7df271 100644 --- a/src/libcalamaresui/libcalamaresui.qrc +++ b/src/libcalamaresui/libcalamaresui.qrc @@ -1,4 +1,8 @@ - + + + ../../data/images/yes.svgz ../../data/images/no.svgz diff --git a/src/libcalamaresui/modulesystem/CppJobModule.cpp b/src/libcalamaresui/modulesystem/CppJobModule.cpp index 6050c6955..453764b13 100644 --- a/src/libcalamaresui/modulesystem/CppJobModule.cpp +++ b/src/libcalamaresui/modulesystem/CppJobModule.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2016, Kevin Kofler + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Kevin Kofler + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/CppJobModule.h b/src/libcalamaresui/modulesystem/CppJobModule.h index 8774a67e5..9c6e7b823 100644 --- a/src/libcalamaresui/modulesystem/CppJobModule.h +++ b/src/libcalamaresui/modulesystem/CppJobModule.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2016, Kevin Kofler - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Kevin Kofler + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/ModuleFactory.cpp b/src/libcalamaresui/modulesystem/ModuleFactory.cpp index 050854613..93ffb745b 100644 --- a/src/libcalamaresui/modulesystem/ModuleFactory.cpp +++ b/src/libcalamaresui/modulesystem/ModuleFactory.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/ModuleFactory.h b/src/libcalamaresui/modulesystem/ModuleFactory.h index 8184967d2..6d8f12a19 100644 --- a/src/libcalamaresui/modulesystem/ModuleFactory.h +++ b/src/libcalamaresui/modulesystem/ModuleFactory.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/ModuleManager.h b/src/libcalamaresui/modulesystem/ModuleManager.h index eb7d086c1..abe0dce00 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.h +++ b/src/libcalamaresui/modulesystem/ModuleManager.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/ProcessJobModule.cpp b/src/libcalamaresui/modulesystem/ProcessJobModule.cpp index b5eed6e43..f3a6d6e98 100644 --- a/src/libcalamaresui/modulesystem/ProcessJobModule.cpp +++ b/src/libcalamaresui/modulesystem/ProcessJobModule.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/ProcessJobModule.h b/src/libcalamaresui/modulesystem/ProcessJobModule.h index b59539a04..e3780ed0e 100644 --- a/src/libcalamaresui/modulesystem/ProcessJobModule.h +++ b/src/libcalamaresui/modulesystem/ProcessJobModule.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/PythonJobModule.cpp b/src/libcalamaresui/modulesystem/PythonJobModule.cpp index 72ca116fb..d3c47fffb 100644 --- a/src/libcalamaresui/modulesystem/PythonJobModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonJobModule.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/PythonJobModule.h b/src/libcalamaresui/modulesystem/PythonJobModule.h index db5554b9b..68963802c 100644 --- a/src/libcalamaresui/modulesystem/PythonJobModule.h +++ b/src/libcalamaresui/modulesystem/PythonJobModule.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp index b94414d4a..3e1f2cce3 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot - * Copyright 2018, Raul Rodrigo Segura + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Raul Rodrigo Segura + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.h b/src/libcalamaresui/modulesystem/PythonQtViewModule.h index 64cc0f8a9..ad8e0989a 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.h +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/ViewModule.cpp b/src/libcalamaresui/modulesystem/ViewModule.cpp index 8f3b9a340..1674d9fab 100644 --- a/src/libcalamaresui/modulesystem/ViewModule.cpp +++ b/src/libcalamaresui/modulesystem/ViewModule.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/modulesystem/ViewModule.h b/src/libcalamaresui/modulesystem/ViewModule.h index ac56e7607..370987b15 100644 --- a/src/libcalamaresui/modulesystem/ViewModule.h +++ b/src/libcalamaresui/modulesystem/ViewModule.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index 680673a22..57f04cd95 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h index 251741fad..a98579cd6 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.h +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/utils/ImageRegistry.h b/src/libcalamaresui/utils/ImageRegistry.h index 5378d71e7..706306c23 100644 --- a/src/libcalamaresui/utils/ImageRegistry.h +++ b/src/libcalamaresui/utils/ImageRegistry.h @@ -1,28 +1,11 @@ /* === This file is part of Calamares - === * + * SPDX-FileCopyrightText: 2012 Christian Muehlhaeuser + * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSES/GPLv3+-ImageRegistry * - * Copyright 2019, Adriaan de Groot */ -/* - * Copyright 2012, Christian Muehlhaeuser - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - #ifndef IMAGE_REGISTRY_H #define IMAGE_REGISTRY_H diff --git a/src/libcalamaresui/utils/Paste.cpp b/src/libcalamaresui/utils/Paste.cpp index 1b9ad4dfe..16ec7a74f 100644 --- a/src/libcalamaresui/utils/Paste.cpp +++ b/src/libcalamaresui/utils/Paste.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Bill Auger + * SPDX-FileCopyrightText: 2019 Bill Auger + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/utils/Paste.h b/src/libcalamaresui/utils/Paste.h index fd088882c..0886a9a7f 100644 --- a/src/libcalamaresui/utils/Paste.h +++ b/src/libcalamaresui/utils/Paste.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Bill Auger + * SPDX-FileCopyrightText: 2019 Bill Auger + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/utils/PythonQtUtils.cpp b/src/libcalamaresui/utils/PythonQtUtils.cpp index 3a60839a4..6528ee4a8 100644 --- a/src/libcalamaresui/utils/PythonQtUtils.cpp +++ b/src/libcalamaresui/utils/PythonQtUtils.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/utils/PythonQtUtils.h b/src/libcalamaresui/utils/PythonQtUtils.h index dc889b2d0..f06a6d4e4 100644 --- a/src/libcalamaresui/utils/PythonQtUtils.h +++ b/src/libcalamaresui/utils/PythonQtUtils.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/utils/Qml.cpp b/src/libcalamaresui/utils/Qml.cpp index 1f1152fa2..602e11326 100644 --- a/src/libcalamaresui/utils/Qml.cpp +++ b/src/libcalamaresui/utils/Qml.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/utils/Qml.h b/src/libcalamaresui/utils/Qml.h index a3fc6d114..ea5d0aa8f 100644 --- a/src/libcalamaresui/utils/Qml.h +++ b/src/libcalamaresui/utils/Qml.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/BlankViewStep.cpp b/src/libcalamaresui/viewpages/BlankViewStep.cpp index 68eba5385..16925a4a1 100644 --- a/src/libcalamaresui/viewpages/BlankViewStep.cpp +++ b/src/libcalamaresui/viewpages/BlankViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/BlankViewStep.h b/src/libcalamaresui/viewpages/BlankViewStep.h index ab44205ac..e10cce872 100644 --- a/src/libcalamaresui/viewpages/BlankViewStep.h +++ b/src/libcalamaresui/viewpages/BlankViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/ExecutionViewStep.cpp b/src/libcalamaresui/viewpages/ExecutionViewStep.cpp index 6f3983dc4..de6f12a21 100644 --- a/src/libcalamaresui/viewpages/ExecutionViewStep.cpp +++ b/src/libcalamaresui/viewpages/ExecutionViewStep.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/ExecutionViewStep.h b/src/libcalamaresui/viewpages/ExecutionViewStep.h index 0edb965a1..f2fea641b 100644 --- a/src/libcalamaresui/viewpages/ExecutionViewStep.h +++ b/src/libcalamaresui/viewpages/ExecutionViewStep.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.cpp b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.cpp index ba7657b09..835e35361 100644 --- a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.cpp +++ b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h index 5ccc4e21d..b18fe8fd3 100644 --- a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h +++ b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/PythonQtJob.cpp b/src/libcalamaresui/viewpages/PythonQtJob.cpp index 0718df95d..112e11cc5 100644 --- a/src/libcalamaresui/viewpages/PythonQtJob.cpp +++ b/src/libcalamaresui/viewpages/PythonQtJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/PythonQtJob.h b/src/libcalamaresui/viewpages/PythonQtJob.h index bab073430..847dcd44c 100644 --- a/src/libcalamaresui/viewpages/PythonQtJob.h +++ b/src/libcalamaresui/viewpages/PythonQtJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.cpp b/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.cpp index d16bd56f8..a55e0db05 100644 --- a/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.cpp +++ b/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h b/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h index 96de6fe9c..96243f707 100644 --- a/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h +++ b/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/PythonQtViewStep.cpp b/src/libcalamaresui/viewpages/PythonQtViewStep.cpp index 5e313ff98..cc849e0ea 100644 --- a/src/libcalamaresui/viewpages/PythonQtViewStep.cpp +++ b/src/libcalamaresui/viewpages/PythonQtViewStep.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/PythonQtViewStep.h b/src/libcalamaresui/viewpages/PythonQtViewStep.h index 5358bc824..c19494013 100644 --- a/src/libcalamaresui/viewpages/PythonQtViewStep.h +++ b/src/libcalamaresui/viewpages/PythonQtViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/QmlViewStep.cpp b/src/libcalamaresui/viewpages/QmlViewStep.cpp index 6318e47d8..650a746e2 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.cpp +++ b/src/libcalamaresui/viewpages/QmlViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/QmlViewStep.h b/src/libcalamaresui/viewpages/QmlViewStep.h index dc2af650d..c81f90567 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.h +++ b/src/libcalamaresui/viewpages/QmlViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/Slideshow.cpp b/src/libcalamaresui/viewpages/Slideshow.cpp index 0c75dc390..ddd8aedb6 100644 --- a/src/libcalamaresui/viewpages/Slideshow.cpp +++ b/src/libcalamaresui/viewpages/Slideshow.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/Slideshow.h b/src/libcalamaresui/viewpages/Slideshow.h index f338d44e2..e3b09a6d1 100644 --- a/src/libcalamaresui/viewpages/Slideshow.h +++ b/src/libcalamaresui/viewpages/Slideshow.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/ViewStep.cpp b/src/libcalamaresui/viewpages/ViewStep.cpp index ad86d06a4..1d9fcf1fb 100644 --- a/src/libcalamaresui/viewpages/ViewStep.cpp +++ b/src/libcalamaresui/viewpages/ViewStep.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/viewpages/ViewStep.h b/src/libcalamaresui/viewpages/ViewStep.h index 59f307af2..6d6b9b2c5 100644 --- a/src/libcalamaresui/viewpages/ViewStep.h +++ b/src/libcalamaresui/viewpages/ViewStep.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/widgets/ClickableLabel.cpp b/src/libcalamaresui/widgets/ClickableLabel.cpp index 8f2323fa4..ec5c18a29 100644 --- a/src/libcalamaresui/widgets/ClickableLabel.cpp +++ b/src/libcalamaresui/widgets/ClickableLabel.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/widgets/ClickableLabel.h b/src/libcalamaresui/widgets/ClickableLabel.h index f60a247ca..43da49276 100644 --- a/src/libcalamaresui/widgets/ClickableLabel.h +++ b/src/libcalamaresui/widgets/ClickableLabel.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp b/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp index cf72c9924..6e9a64d10 100644 --- a/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp +++ b/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/widgets/FixedAspectRatioLabel.h b/src/libcalamaresui/widgets/FixedAspectRatioLabel.h index 9466fcd15..dd85f98ef 100644 --- a/src/libcalamaresui/widgets/FixedAspectRatioLabel.h +++ b/src/libcalamaresui/widgets/FixedAspectRatioLabel.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/widgets/PrettyRadioButton.cpp b/src/libcalamaresui/widgets/PrettyRadioButton.cpp index 1cf348315..091be266b 100644 --- a/src/libcalamaresui/widgets/PrettyRadioButton.cpp +++ b/src/libcalamaresui/widgets/PrettyRadioButton.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/widgets/PrettyRadioButton.h b/src/libcalamaresui/widgets/PrettyRadioButton.h index 9c7139526..8b0a3da7d 100644 --- a/src/libcalamaresui/widgets/PrettyRadioButton.h +++ b/src/libcalamaresui/widgets/PrettyRadioButton.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/widgets/WaitingWidget.cpp b/src/libcalamaresui/widgets/WaitingWidget.cpp index 1a658b35b..11b1a10f7 100644 --- a/src/libcalamaresui/widgets/WaitingWidget.cpp +++ b/src/libcalamaresui/widgets/WaitingWidget.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/widgets/WaitingWidget.h b/src/libcalamaresui/widgets/WaitingWidget.h index 0d8b6fd5b..be375c453 100644 --- a/src/libcalamaresui/widgets/WaitingWidget.h +++ b/src/libcalamaresui/widgets/WaitingWidget.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/qml/calamares/slideshow/BackButton.qml b/src/qml/calamares/slideshow/BackButton.qml index 2d5f4dd5e..4a51f467e 100644 --- a/src/qml/calamares/slideshow/BackButton.qml +++ b/src/qml/calamares/slideshow/BackButton.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/qml/calamares/slideshow/ForwardButton.qml b/src/qml/calamares/slideshow/ForwardButton.qml index 9f6fecf8e..023f0e56b 100644 --- a/src/qml/calamares/slideshow/ForwardButton.qml +++ b/src/qml/calamares/slideshow/ForwardButton.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/qml/calamares/slideshow/NavButton.qml b/src/qml/calamares/slideshow/NavButton.qml index 33d8cad77..01537d343 100644 --- a/src/qml/calamares/slideshow/NavButton.qml +++ b/src/qml/calamares/slideshow/NavButton.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,14 +28,14 @@ import QtQuick 2.5; Image { id: fade - + property bool isForward : true - + width: 100 height: 100 anchors.verticalCenter: parent.verticalCenter opacity: 0.3 - + OpacityAnimator { id: fadeIn target: fade @@ -43,7 +44,7 @@ Image { duration: 500 running: false } - + OpacityAnimator { id: fadeOut target: fade @@ -52,7 +53,7 @@ Image { duration: 250 running: false } - + MouseArea { anchors.fill: parent hoverEnabled: true diff --git a/src/qml/calamares/slideshow/SlideCounter.qml b/src/qml/calamares/slideshow/SlideCounter.qml index e59476f5c..790471331 100644 --- a/src/qml/calamares/slideshow/SlideCounter.qml +++ b/src/qml/calamares/slideshow/SlideCounter.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/qml/calamares/slideshow/qmldir b/src/qml/calamares/slideshow/qmldir index 7b964b831..8b68d1143 100644 --- a/src/qml/calamares/slideshow/qmldir +++ b/src/qml/calamares/slideshow/qmldir @@ -1,3 +1,6 @@ +/* SPDX-FileCopyrightText: no + SPDX-License-Identifier: CC0-1.0 +*/ module calamares.slideshow Presentation 1.0 Presentation.qml From 4e75ea8bd05f7dda6cc523658765969c27a36e77 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 00:21:51 +0200 Subject: [PATCH 18/54] REUSE: Add best-effort .license for data/images/ - the commit messages don't mention getting the images from elsewhere, so use the commit date. --- data/images/boot-environment.svg.license | 2 ++ data/images/bugs.svg.license | 2 ++ data/images/fail.svgz.license | 2 ++ data/images/help-donate.svg.license | 2 ++ data/images/help.svg.license | 2 ++ data/images/information.svgz.license | 2 ++ data/images/no.svgz.license | 2 ++ data/images/partition-alongside.svg.license | 2 ++ data/images/partition-disk.svg.license | 2 ++ data/images/partition-erase-auto.svg.license | 2 ++ data/images/partition-manual.svg.license | 2 ++ data/images/partition-partition.svg.license | 2 ++ data/images/partition-replace-os.svg.license | 2 ++ data/images/partition-table.svg.license | 2 ++ data/images/release.svg.license | 2 ++ data/images/squid.png.license | 2 ++ data/images/squid.svg.license | 2 ++ data/images/state-error.svg.license | 2 ++ data/images/state-ok.svg.license | 2 ++ data/images/state-warning.svg.license | 2 ++ data/images/yes.svgz.license | 2 ++ 21 files changed, 42 insertions(+) create mode 100644 data/images/boot-environment.svg.license create mode 100644 data/images/bugs.svg.license create mode 100644 data/images/fail.svgz.license create mode 100644 data/images/help-donate.svg.license create mode 100644 data/images/help.svg.license create mode 100644 data/images/information.svgz.license create mode 100644 data/images/no.svgz.license create mode 100644 data/images/partition-alongside.svg.license create mode 100644 data/images/partition-disk.svg.license create mode 100644 data/images/partition-erase-auto.svg.license create mode 100644 data/images/partition-manual.svg.license create mode 100644 data/images/partition-partition.svg.license create mode 100644 data/images/partition-replace-os.svg.license create mode 100644 data/images/partition-table.svg.license create mode 100644 data/images/release.svg.license create mode 100644 data/images/squid.png.license create mode 100644 data/images/squid.svg.license create mode 100644 data/images/state-error.svg.license create mode 100644 data/images/state-ok.svg.license create mode 100644 data/images/state-warning.svg.license create mode 100644 data/images/yes.svgz.license diff --git a/data/images/boot-environment.svg.license b/data/images/boot-environment.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/boot-environment.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/bugs.svg.license b/data/images/bugs.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/bugs.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/fail.svgz.license b/data/images/fail.svgz.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/data/images/fail.svgz.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/help-donate.svg.license b/data/images/help-donate.svg.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/data/images/help-donate.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/data/images/help.svg.license b/data/images/help.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/help.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/information.svgz.license b/data/images/information.svgz.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/data/images/information.svgz.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/no.svgz.license b/data/images/no.svgz.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/data/images/no.svgz.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/partition-alongside.svg.license b/data/images/partition-alongside.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/partition-alongside.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/partition-disk.svg.license b/data/images/partition-disk.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/partition-disk.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/partition-erase-auto.svg.license b/data/images/partition-erase-auto.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/partition-erase-auto.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/partition-manual.svg.license b/data/images/partition-manual.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/partition-manual.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/partition-partition.svg.license b/data/images/partition-partition.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/partition-partition.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/partition-replace-os.svg.license b/data/images/partition-replace-os.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/partition-replace-os.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/partition-table.svg.license b/data/images/partition-table.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/partition-table.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/release.svg.license b/data/images/release.svg.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/data/images/release.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/squid.png.license b/data/images/squid.png.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/data/images/squid.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/squid.svg.license b/data/images/squid.svg.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/data/images/squid.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/images/state-error.svg.license b/data/images/state-error.svg.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/data/images/state-error.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/data/images/state-ok.svg.license b/data/images/state-ok.svg.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/data/images/state-ok.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/data/images/state-warning.svg.license b/data/images/state-warning.svg.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/data/images/state-warning.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/data/images/yes.svgz.license b/data/images/yes.svgz.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/data/images/yes.svgz.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later From 1a557804ab613c5cac21152f35ac74f7b103b233 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 Aug 2020 13:04:50 +0200 Subject: [PATCH 19/54] REUSE: Remainder of data/ - *AppImage example config*: this is old AppImage configuration, basically unmaintained, but copied from the **other** example config files which are CC0-1.0 as well. - *Sample Linux distro*: The example Linux distro has a handful of trivial files, a bogus `/etc/issue`, that kind of thing. - The bash completions are GPL-3.0-or-later - FreeBSD packaging information is BSD-2-Clause --- data/FreeBSD/Makefile | 3 + data/completion/bash/calamares | 3 +- .../branding/default/squid.png.license | 2 + .../modules/displaymanager.conf | 3 + data/config-appimage/modules/finished.conf | 3 + data/config-appimage/modules/keyboard.conf | 3 + data/config-appimage/modules/locale.conf | 3 + data/config-appimage/modules/users.conf | 3 + data/config-appimage/modules/welcome.conf | 3 + data/config-appimage/settings.conf | 3 + data/example-root/README.md | 4 + data/example-root/etc/bash.bashrc | 3 + data/example-root/etc/group | 3 + data/example-root/etc/issue | 3 + data/example-root/etc/locale.gen | 482 +----------------- data/example-root/etc/profile | 3 + data/example-root/xbin/linux-version | 4 + data/example-root/xbin/useradd | 4 + 18 files changed, 55 insertions(+), 480 deletions(-) create mode 100644 data/config-appimage/branding/default/squid.png.license diff --git a/data/FreeBSD/Makefile b/data/FreeBSD/Makefile index 520a05638..d9b7e5043 100644 --- a/data/FreeBSD/Makefile +++ b/data/FreeBSD/Makefile @@ -1,4 +1,7 @@ # $FreeBSD$ +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause PORTNAME= calamares DISTVERSION= 3.2.25 diff --git a/data/completion/bash/calamares b/data/completion/bash/calamares index 47c2bb268..21f2edba4 100644 --- a/data/completion/bash/calamares +++ b/data/completion/bash/calamares @@ -1,6 +1,7 @@ # === This file is part of Calamares - === # -# Copyright 2020, Gaël PORTAY +# SPDX-FileCopyrightText: 2020 Gaël PORTAY +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/data/config-appimage/branding/default/squid.png.license b/data/config-appimage/branding/default/squid.png.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/data/config-appimage/branding/default/squid.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/data/config-appimage/modules/displaymanager.conf b/data/config-appimage/modules/displaymanager.conf index 8f8e9c704..5c9554602 100644 --- a/data/config-appimage/modules/displaymanager.conf +++ b/data/config-appimage/modules/displaymanager.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configure one or more display managers (e.g. SDDM) # with a "best effort" approach. --- diff --git a/data/config-appimage/modules/finished.conf b/data/config-appimage/modules/finished.conf index 48bbdc031..f0280ef58 100644 --- a/data/config-appimage/modules/finished.conf +++ b/data/config-appimage/modules/finished.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the "finished" page, which is usually shown only at # the end of the installation (successful or not). --- diff --git a/data/config-appimage/modules/keyboard.conf b/data/config-appimage/modules/keyboard.conf index ee97c3939..d122f30d7 100644 --- a/data/config-appimage/modules/keyboard.conf +++ b/data/config-appimage/modules/keyboard.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # NOTE: you must have ckbcomp installed and runnable # on the live system, for keyboard layout previews. --- diff --git a/data/config-appimage/modules/locale.conf b/data/config-appimage/modules/locale.conf index 8ae016279..5e8aa3ab5 100644 --- a/data/config-appimage/modules/locale.conf +++ b/data/config-appimage/modules/locale.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# --- # This settings are used to set your default system time zone. # Time zones are usually located under /usr/share/zoneinfo and diff --git a/data/config-appimage/modules/users.conf b/data/config-appimage/modules/users.conf index bdf812878..4d9cc4394 100644 --- a/data/config-appimage/modules/users.conf +++ b/data/config-appimage/modules/users.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the one-user-system user module. # # Besides these settings, the user module also places the following diff --git a/data/config-appimage/modules/welcome.conf b/data/config-appimage/modules/welcome.conf index 0cfb59546..2978010b7 100644 --- a/data/config-appimage/modules/welcome.conf +++ b/data/config-appimage/modules/welcome.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the welcome module. The welcome page # displays some information from the branding file. # Which parts it displays can be configured through diff --git a/data/config-appimage/settings.conf b/data/config-appimage/settings.conf index 756710492..defef0b44 100644 --- a/data/config-appimage/settings.conf +++ b/data/config-appimage/settings.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration file for Calamares # Syntax is YAML 1.2 --- diff --git a/data/example-root/README.md b/data/example-root/README.md index 7173b3eaf..9d8987286 100644 --- a/data/example-root/README.md +++ b/data/example-root/README.md @@ -1,5 +1,9 @@ # Example Filesystem + + This is a filesystem that will be used as / in an example distro, *if* you build the `example-distro` target and use the default unpackfs configuration. It should hold files and configuration diff --git a/data/example-root/etc/bash.bashrc b/data/example-root/etc/bash.bashrc index 42bd3d007..7de2a283d 100644 --- a/data/example-root/etc/bash.bashrc +++ b/data/example-root/etc/bash.bashrc @@ -1,2 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Global .profile -- add /sbin_1 PATH=$PATH:/sbin_1:/xbin diff --git a/data/example-root/etc/group b/data/example-root/etc/group index 1dbf9013e..3130ae3e8 100644 --- a/data/example-root/etc/group +++ b/data/example-root/etc/group @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# root:x:0: diff --git a/data/example-root/etc/issue b/data/example-root/etc/issue index ce0ac58e3..22cce578e 100644 --- a/data/example-root/etc/issue +++ b/data/example-root/etc/issue @@ -1 +1,4 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# This is an example /etc/issue file. diff --git a/data/example-root/etc/locale.gen b/data/example-root/etc/locale.gen index 5e729a18d..e2df1eaef 100644 --- a/data/example-root/etc/locale.gen +++ b/data/example-root/etc/locale.gen @@ -1,486 +1,10 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # This file lists locales that you wish to have built. You can find a list # of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add # user defined locales to /usr/local/share/i18n/SUPPORTED. If you change # this file, you need to rerun locale-gen. - -# aa_DJ ISO-8859-1 -# aa_DJ.UTF-8 UTF-8 -# aa_ER UTF-8 -# aa_ER@saaho UTF-8 -# aa_ET UTF-8 -# af_ZA ISO-8859-1 -# af_ZA.UTF-8 UTF-8 -# ak_GH UTF-8 -# am_ET UTF-8 -# an_ES ISO-8859-15 -# an_ES.UTF-8 UTF-8 -# anp_IN UTF-8 -# ar_AE ISO-8859-6 -# ar_AE.UTF-8 UTF-8 -# ar_BH ISO-8859-6 -# ar_BH.UTF-8 UTF-8 -# ar_DZ ISO-8859-6 -# ar_DZ.UTF-8 UTF-8 -# ar_EG ISO-8859-6 -# ar_EG.UTF-8 UTF-8 -# ar_IN UTF-8 -# ar_IQ ISO-8859-6 -# ar_IQ.UTF-8 UTF-8 -# ar_JO ISO-8859-6 -# ar_JO.UTF-8 UTF-8 -# ar_KW ISO-8859-6 -# ar_KW.UTF-8 UTF-8 -# ar_LB ISO-8859-6 -# ar_LB.UTF-8 UTF-8 -# ar_LY ISO-8859-6 -# ar_LY.UTF-8 UTF-8 -# ar_MA ISO-8859-6 -# ar_MA.UTF-8 UTF-8 -# ar_OM ISO-8859-6 -# ar_OM.UTF-8 UTF-8 -# ar_QA ISO-8859-6 -# ar_QA.UTF-8 UTF-8 -# ar_SA ISO-8859-6 -# ar_SA.UTF-8 UTF-8 -# ar_SD ISO-8859-6 -# ar_SD.UTF-8 UTF-8 -# ar_SS UTF-8 -# ar_SY ISO-8859-6 -# ar_SY.UTF-8 UTF-8 -# ar_TN ISO-8859-6 -# ar_TN.UTF-8 UTF-8 -# ar_YE ISO-8859-6 -# ar_YE.UTF-8 UTF-8 -# as_IN UTF-8 -# ast_ES ISO-8859-15 -# ast_ES.UTF-8 UTF-8 -# ayc_PE UTF-8 -# az_AZ UTF-8 -# be_BY CP1251 -# be_BY.UTF-8 UTF-8 -# be_BY@latin UTF-8 -# bem_ZM UTF-8 -# ber_DZ UTF-8 -# ber_MA UTF-8 -# bg_BG CP1251 -# bg_BG.UTF-8 UTF-8 -# bhb_IN.UTF-8 UTF-8 -# bho_IN UTF-8 -# bn_BD UTF-8 -# bn_IN UTF-8 -# bo_CN UTF-8 -# bo_IN UTF-8 -# br_FR ISO-8859-1 -# br_FR.UTF-8 UTF-8 -# br_FR@euro ISO-8859-15 -# brx_IN UTF-8 -# bs_BA ISO-8859-2 -# bs_BA.UTF-8 UTF-8 -# byn_ER UTF-8 -# ca_AD ISO-8859-15 -# ca_AD.UTF-8 UTF-8 -# ca_ES ISO-8859-1 -# ca_ES.UTF-8 UTF-8 -# ca_ES.UTF-8@valencia UTF-8 -# ca_ES@euro ISO-8859-15 -# ca_ES@valencia ISO-8859-15 -# ca_FR ISO-8859-15 -# ca_FR.UTF-8 UTF-8 -# ca_IT ISO-8859-15 -# ca_IT.UTF-8 UTF-8 -# ce_RU UTF-8 -# ckb_IQ UTF-8 -# cmn_TW UTF-8 -# crh_UA UTF-8 -# cs_CZ ISO-8859-2 -# cs_CZ.UTF-8 UTF-8 -# csb_PL UTF-8 -# cv_RU UTF-8 -# cy_GB ISO-8859-14 -# cy_GB.UTF-8 UTF-8 -# da_DK ISO-8859-1 -# da_DK.UTF-8 UTF-8 -# de_AT ISO-8859-1 -# de_AT.UTF-8 UTF-8 -# de_AT@euro ISO-8859-15 -# de_BE ISO-8859-1 -# de_BE.UTF-8 UTF-8 -# de_BE@euro ISO-8859-15 -# de_CH ISO-8859-1 -# de_CH.UTF-8 UTF-8 -# de_DE ISO-8859-1 -# de_DE.UTF-8 UTF-8 -# de_DE@euro ISO-8859-15 -# de_LI.UTF-8 UTF-8 -# de_LU ISO-8859-1 -# de_LU.UTF-8 UTF-8 -# de_LU@euro ISO-8859-15 -# doi_IN UTF-8 -# dv_MV UTF-8 -# dz_BT UTF-8 -# el_CY ISO-8859-7 -# el_CY.UTF-8 UTF-8 -# el_GR ISO-8859-7 -# el_GR.UTF-8 UTF-8 -# en_AG UTF-8 -# en_AU ISO-8859-1 -# en_AU.UTF-8 UTF-8 -# en_BW ISO-8859-1 -# en_BW.UTF-8 UTF-8 -# en_CA ISO-8859-1 en_CA.UTF-8 UTF-8 -# en_DK ISO-8859-1 -# en_DK.ISO-8859-15 ISO-8859-15 -# en_DK.UTF-8 UTF-8 -# en_GB ISO-8859-1 -# en_GB.ISO-8859-15 ISO-8859-15 -# en_GB.UTF-8 UTF-8 -# en_HK ISO-8859-1 -# en_HK.UTF-8 UTF-8 -# en_IE ISO-8859-1 -# en_IE.UTF-8 UTF-8 -# en_IE@euro ISO-8859-15 -# en_IN UTF-8 -# en_NG UTF-8 -# en_NZ ISO-8859-1 -# en_NZ.UTF-8 UTF-8 -# en_PH ISO-8859-1 -# en_PH.UTF-8 UTF-8 -# en_SG ISO-8859-1 -# en_SG.UTF-8 UTF-8 -# en_US ISO-8859-1 -# en_US.ISO-8859-15 ISO-8859-15 en_US.UTF-8 UTF-8 -# en_ZA ISO-8859-1 -# en_ZA.UTF-8 UTF-8 -# en_ZM UTF-8 -# en_ZW ISO-8859-1 -# en_ZW.UTF-8 UTF-8 -# eo ISO-8859-3 -# eo.UTF-8 UTF-8 -# eo_US.UTF-8 UTF-8 -# es_AR ISO-8859-1 -# es_AR.UTF-8 UTF-8 -# es_BO ISO-8859-1 -# es_BO.UTF-8 UTF-8 -# es_CL ISO-8859-1 -# es_CL.UTF-8 UTF-8 -# es_CO ISO-8859-1 -# es_CO.UTF-8 UTF-8 -# es_CR ISO-8859-1 -# es_CR.UTF-8 UTF-8 -# es_CU UTF-8 -# es_DO ISO-8859-1 -# es_DO.UTF-8 UTF-8 -# es_EC ISO-8859-1 -# es_EC.UTF-8 UTF-8 -# es_ES ISO-8859-1 -# es_ES.UTF-8 UTF-8 -# es_ES@euro ISO-8859-15 -# es_GT ISO-8859-1 -# es_GT.UTF-8 UTF-8 -# es_HN ISO-8859-1 -# es_HN.UTF-8 UTF-8 -# es_MX ISO-8859-1 -# es_MX.UTF-8 UTF-8 -# es_NI ISO-8859-1 -# es_NI.UTF-8 UTF-8 -# es_PA ISO-8859-1 -# es_PA.UTF-8 UTF-8 -# es_PE ISO-8859-1 -# es_PE.UTF-8 UTF-8 -# es_PR ISO-8859-1 -# es_PR.UTF-8 UTF-8 -# es_PY ISO-8859-1 -# es_PY.UTF-8 UTF-8 -# es_SV ISO-8859-1 -# es_SV.UTF-8 UTF-8 -# es_US ISO-8859-1 -# es_US.UTF-8 UTF-8 -# es_UY ISO-8859-1 -# es_UY.UTF-8 UTF-8 -# es_VE ISO-8859-1 -# es_VE.UTF-8 UTF-8 -# et_EE ISO-8859-1 -# et_EE.ISO-8859-15 ISO-8859-15 -# et_EE.UTF-8 UTF-8 -# eu_ES ISO-8859-1 -# eu_ES.UTF-8 UTF-8 -# eu_ES@euro ISO-8859-15 -# eu_FR ISO-8859-1 -# eu_FR.UTF-8 UTF-8 -# eu_FR@euro ISO-8859-15 -# fa_IR UTF-8 -# ff_SN UTF-8 -# fi_FI ISO-8859-1 -# fi_FI.UTF-8 UTF-8 -# fi_FI@euro ISO-8859-15 -# fil_PH UTF-8 -# fo_FO ISO-8859-1 -# fo_FO.UTF-8 UTF-8 -# fr_BE ISO-8859-1 -# fr_BE.UTF-8 UTF-8 -# fr_BE@euro ISO-8859-15 -# fr_CA ISO-8859-1 -# fr_CA.UTF-8 UTF-8 -# fr_CH ISO-8859-1 -# fr_CH.UTF-8 UTF-8 -# fr_FR ISO-8859-1 -# fr_FR.UTF-8 UTF-8 -# fr_FR@euro ISO-8859-15 -# fr_LU ISO-8859-1 -# fr_LU.UTF-8 UTF-8 -# fr_LU@euro ISO-8859-15 -# fur_IT UTF-8 -# fy_DE UTF-8 -# fy_NL UTF-8 -# ga_IE ISO-8859-1 -# ga_IE.UTF-8 UTF-8 -# ga_IE@euro ISO-8859-15 -# gd_GB ISO-8859-15 -# gd_GB.UTF-8 UTF-8 -# gez_ER UTF-8 -# gez_ER@abegede UTF-8 -# gez_ET UTF-8 -# gez_ET@abegede UTF-8 -# gl_ES ISO-8859-1 -# gl_ES.UTF-8 UTF-8 -# gl_ES@euro ISO-8859-15 -# gu_IN UTF-8 -# gv_GB ISO-8859-1 -# gv_GB.UTF-8 UTF-8 -# ha_NG UTF-8 -# hak_TW UTF-8 -# he_IL ISO-8859-8 -# he_IL.UTF-8 UTF-8 -# hi_IN UTF-8 -# hne_IN UTF-8 -# hr_HR ISO-8859-2 -# hr_HR.UTF-8 UTF-8 -# hsb_DE ISO-8859-2 -# hsb_DE.UTF-8 UTF-8 -# ht_HT UTF-8 -# hu_HU ISO-8859-2 -# hu_HU.UTF-8 UTF-8 -# hy_AM UTF-8 -# hy_AM.ARMSCII-8 ARMSCII-8 -# ia_FR UTF-8 -# id_ID ISO-8859-1 -# id_ID.UTF-8 UTF-8 -# ig_NG UTF-8 -# ik_CA UTF-8 -# is_IS ISO-8859-1 -# is_IS.UTF-8 UTF-8 -# it_CH ISO-8859-1 -# it_CH.UTF-8 UTF-8 -# it_IT ISO-8859-1 -# it_IT.UTF-8 UTF-8 -# it_IT@euro ISO-8859-15 -# iu_CA UTF-8 -# iw_IL ISO-8859-8 -# iw_IL.UTF-8 UTF-8 -# ja_JP.EUC-JP EUC-JP -# ja_JP.UTF-8 UTF-8 -# ka_GE GEORGIAN-PS -# ka_GE.UTF-8 UTF-8 -# kk_KZ PT154 -# kk_KZ RK1048 -# kk_KZ.UTF-8 UTF-8 -# kl_GL ISO-8859-1 -# kl_GL.UTF-8 UTF-8 -# km_KH UTF-8 -# kn_IN UTF-8 -# ko_KR.EUC-KR EUC-KR -# ko_KR.UTF-8 UTF-8 -# kok_IN UTF-8 -# ks_IN UTF-8 -# ks_IN@devanagari UTF-8 -# ku_TR ISO-8859-9 -# ku_TR.UTF-8 UTF-8 -# kw_GB ISO-8859-1 -# kw_GB.UTF-8 UTF-8 -# ky_KG UTF-8 -# lb_LU UTF-8 -# lg_UG ISO-8859-10 -# lg_UG.UTF-8 UTF-8 -# li_BE UTF-8 -# li_NL UTF-8 -# lij_IT UTF-8 -# ln_CD UTF-8 -# lo_LA UTF-8 -# lt_LT ISO-8859-13 -# lt_LT.UTF-8 UTF-8 -# lv_LV ISO-8859-13 -# lv_LV.UTF-8 UTF-8 -# lzh_TW UTF-8 -# mag_IN UTF-8 -# mai_IN UTF-8 -# mg_MG ISO-8859-15 -# mg_MG.UTF-8 UTF-8 -# mhr_RU UTF-8 -# mi_NZ ISO-8859-13 -# mi_NZ.UTF-8 UTF-8 -# mk_MK ISO-8859-5 -# mk_MK.UTF-8 UTF-8 -# ml_IN UTF-8 -# mn_MN UTF-8 -# mni_IN UTF-8 -# mr_IN UTF-8 -# ms_MY ISO-8859-1 -# ms_MY.UTF-8 UTF-8 -# mt_MT ISO-8859-3 -# mt_MT.UTF-8 UTF-8 -# my_MM UTF-8 -# nan_TW UTF-8 -# nan_TW@latin UTF-8 -# nb_NO ISO-8859-1 -# nb_NO.UTF-8 UTF-8 -# nds_DE UTF-8 -# nds_NL UTF-8 -# ne_NP UTF-8 -# nhn_MX UTF-8 -# niu_NU UTF-8 -# niu_NZ UTF-8 -# nl_AW UTF-8 -# nl_BE ISO-8859-1 -# nl_BE.UTF-8 UTF-8 -# nl_BE@euro ISO-8859-15 -# nl_NL ISO-8859-1 -# nl_NL.UTF-8 UTF-8 -# nl_NL@euro ISO-8859-15 -# nn_NO ISO-8859-1 -# nn_NO.UTF-8 UTF-8 -# nr_ZA UTF-8 -# nso_ZA UTF-8 -# oc_FR ISO-8859-1 -# oc_FR.UTF-8 UTF-8 -# om_ET UTF-8 -# om_KE ISO-8859-1 -# om_KE.UTF-8 UTF-8 -# or_IN UTF-8 -# os_RU UTF-8 -# pa_IN UTF-8 -# pa_PK UTF-8 -# pap_AN UTF-8 -# pap_AW UTF-8 -# pap_CW UTF-8 -# pl_PL ISO-8859-2 -# pl_PL.UTF-8 UTF-8 -# ps_AF UTF-8 -# pt_BR ISO-8859-1 -# pt_BR.UTF-8 UTF-8 -# pt_PT ISO-8859-1 -# pt_PT.UTF-8 UTF-8 -# pt_PT@euro ISO-8859-15 -# quz_PE UTF-8 -# raj_IN UTF-8 -# ro_RO ISO-8859-2 -# ro_RO.UTF-8 UTF-8 -# ru_RU ISO-8859-5 -# ru_RU.CP1251 CP1251 -# ru_RU.KOI8-R KOI8-R -# ru_RU.UTF-8 UTF-8 -# ru_UA KOI8-U -# ru_UA.UTF-8 UTF-8 -# rw_RW UTF-8 -# sa_IN UTF-8 -# sat_IN UTF-8 -# sc_IT UTF-8 -# sd_IN UTF-8 -# sd_IN@devanagari UTF-8 -# sd_PK UTF-8 -# se_NO UTF-8 -# shs_CA UTF-8 -# si_LK UTF-8 -# sid_ET UTF-8 -# sk_SK ISO-8859-2 -# sk_SK.UTF-8 UTF-8 -# sl_SI ISO-8859-2 -# sl_SI.UTF-8 UTF-8 -# so_DJ ISO-8859-1 -# so_DJ.UTF-8 UTF-8 -# so_ET UTF-8 -# so_KE ISO-8859-1 -# so_KE.UTF-8 UTF-8 -# so_SO ISO-8859-1 -# so_SO.UTF-8 UTF-8 -# sq_AL ISO-8859-1 -# sq_AL.UTF-8 UTF-8 -# sq_MK UTF-8 -# sr_ME UTF-8 -# sr_RS UTF-8 -# sr_RS@latin UTF-8 -# ss_ZA UTF-8 -# st_ZA ISO-8859-1 -# st_ZA.UTF-8 UTF-8 -# sv_FI ISO-8859-1 -# sv_FI.UTF-8 UTF-8 -# sv_FI@euro ISO-8859-15 -# sv_SE ISO-8859-1 -# sv_SE.ISO-8859-15 ISO-8859-15 -# sv_SE.UTF-8 UTF-8 -# sw_KE UTF-8 -# sw_TZ UTF-8 -# szl_PL UTF-8 -# ta_IN UTF-8 -# ta_LK UTF-8 -# tcy_IN.UTF-8 UTF-8 -# te_IN UTF-8 -# tg_TJ KOI8-T -# tg_TJ.UTF-8 UTF-8 -# th_TH TIS-620 -# th_TH.UTF-8 UTF-8 -# the_NP UTF-8 -# ti_ER UTF-8 -# ti_ET UTF-8 -# tig_ER UTF-8 -# tk_TM UTF-8 -# tl_PH ISO-8859-1 -# tl_PH.UTF-8 UTF-8 -# tn_ZA UTF-8 -# tr_CY ISO-8859-9 -# tr_CY.UTF-8 UTF-8 -# tr_TR ISO-8859-9 -# tr_TR.UTF-8 UTF-8 -# ts_ZA UTF-8 -# tt_RU UTF-8 -# tt_RU@iqtelif UTF-8 -# ug_CN UTF-8 -# ug_CN@latin UTF-8 -# uk_UA KOI8-U -# uk_UA.UTF-8 UTF-8 -# unm_US UTF-8 -# ur_IN UTF-8 -# ur_PK UTF-8 -# uz_UZ ISO-8859-1 -# uz_UZ.UTF-8 UTF-8 -# uz_UZ@cyrillic UTF-8 -# ve_ZA UTF-8 -# vi_VN UTF-8 -# wa_BE ISO-8859-1 -# wa_BE.UTF-8 UTF-8 -# wa_BE@euro ISO-8859-15 -# wae_CH UTF-8 -# wal_ET UTF-8 -# wo_SN UTF-8 -# xh_ZA ISO-8859-1 -# xh_ZA.UTF-8 UTF-8 -# yi_US CP1255 -# yi_US.UTF-8 UTF-8 -# yo_NG UTF-8 -# yue_HK UTF-8 -# zh_CN GB2312 -# zh_CN.GB18030 GB18030 -# zh_CN.GBK GBK -# zh_CN.UTF-8 UTF-8 -# zh_HK BIG5-HKSCS -# zh_HK.UTF-8 UTF-8 -# zh_SG GB2312 -# zh_SG.GBK GBK -# zh_SG.UTF-8 UTF-8 -# zh_TW BIG5 -# zh_TW.EUC-TW EUC-TW -# zh_TW.UTF-8 UTF-8 -# zu_ZA ISO-8859-1 -# zu_ZA.UTF-8 UTF-8 diff --git a/data/example-root/etc/profile b/data/example-root/etc/profile index 42bd3d007..7de2a283d 100644 --- a/data/example-root/etc/profile +++ b/data/example-root/etc/profile @@ -1,2 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Global .profile -- add /sbin_1 PATH=$PATH:/sbin_1:/xbin diff --git a/data/example-root/xbin/linux-version b/data/example-root/xbin/linux-version index 3e91d5333..87b040d34 100755 --- a/data/example-root/xbin/linux-version +++ b/data/example-root/xbin/linux-version @@ -1 +1,5 @@ #! /bin/true +# +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# diff --git a/data/example-root/xbin/useradd b/data/example-root/xbin/useradd index 3e91d5333..87b040d34 100755 --- a/data/example-root/xbin/useradd +++ b/data/example-root/xbin/useradd @@ -1 +1,5 @@ #! /bin/true +# +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# From 92a6cbc77315c1b38f61f8e02cbd2396d3c4f036 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 00:49:48 +0200 Subject: [PATCH 20/54] REUSE: (CC0-1.0) generated files & PD files - the translations generated from public-domain files are CC0-1.0 - the files derived from Unicode tables are close to CC0-1.0, possibly except that there is a FileCopyrightText line --- lang/tz_en.ts | 3 +++ lang/tz_nl.ts | 3 +++ lang/tz_sv.ts | 6 +++++- lang/tz_uk.ts | 3 +++ src/libcalamares/locale/CountryData_p.cpp | 2 +- src/libcalamares/locale/ZoneData_p.cxxtr | 2 +- src/libcalamares/locale/zone-extractor.py | 2 +- 7 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lang/tz_en.ts b/lang/tz_en.ts index ba9b5a350..cbd037f32 100644 --- a/lang/tz_en.ts +++ b/lang/tz_en.ts @@ -1,4 +1,7 @@ + diff --git a/lang/tz_nl.ts b/lang/tz_nl.ts index e1eb8d1e5..ed501dd67 100644 --- a/lang/tz_nl.ts +++ b/lang/tz_nl.ts @@ -1,4 +1,7 @@ + diff --git a/lang/tz_sv.ts b/lang/tz_sv.ts index 98d9b83c3..c871dbac5 100644 --- a/lang/tz_sv.ts +++ b/lang/tz_sv.ts @@ -1,4 +1,8 @@ - + + + QObject diff --git a/lang/tz_uk.ts b/lang/tz_uk.ts index 6059079ca..ced3e5b80 100644 --- a/lang/tz_uk.ts +++ b/lang/tz_uk.ts @@ -1,4 +1,7 @@ + diff --git a/src/libcalamares/locale/CountryData_p.cpp b/src/libcalamares/locale/CountryData_p.cpp index 722ee2ba9..61b9b05a7 100644 --- a/src/libcalamares/locale/CountryData_p.cpp +++ b/src/libcalamares/locale/CountryData_p.cpp @@ -4,7 +4,7 @@ * * SPDX-FileCopyrightText: 1991-2019 Unicode, Inc. * SPDX-FileCopyrightText: 2019 Adriaan de Groot -* SPDX-License-Identifier: CC0 +* SPDX-License-Identifier: CC0-1.0 * * This file is derived from CLDR data from Unicode, Inc. Applicable terms * are listed at http://unicode.org/copyright.html , of which the most diff --git a/src/libcalamares/locale/ZoneData_p.cxxtr b/src/libcalamares/locale/ZoneData_p.cxxtr index 7bbcdf7f6..c59c60dbb 100644 --- a/src/libcalamares/locale/ZoneData_p.cxxtr +++ b/src/libcalamares/locale/ZoneData_p.cxxtr @@ -2,7 +2,7 @@ * * SPDX-FileCopyrightText: 2009 Arthur David Olson * SPDX-FileCopyrightText: 2019 Adriaan de Groot -* SPDX-License-Identifier: CC0 +* SPDX-License-Identifier: CC0-1.0 * * This file is derived from zone.tab, which has its own copyright statement: * diff --git a/src/libcalamares/locale/zone-extractor.py b/src/libcalamares/locale/zone-extractor.py index 3f08df9d8..aa8063522 100644 --- a/src/libcalamares/locale/zone-extractor.py +++ b/src/libcalamares/locale/zone-extractor.py @@ -48,7 +48,7 @@ cpp_header_comment = """/* GENERATED FILE DO NOT EDIT * * SPDX-FileCopyrightText: 2009 Arthur David Olson * SPDX-FileCopyrightText: 2019 Adriaan de Groot -* SPDX-License-Identifier: CC0 +* SPDX-License-Identifier: CC0-1.0 * * This file is derived from zone.tab, which has its own copyright statement: * From 1b23520f2020f4cf5ca189ef51f6503d57445f8e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 21 Aug 2020 19:54:36 +0200 Subject: [PATCH 21/54] REUSE: (CC0-1.0) module descriptors and configuration files In spite of there being considerable documentation sometimes in the config file, we go with CC0 because we don't want the notion of 'derived work' of a config file. The example `settings.conf` is also CC0. Add some docs to it while we're at it. --- settings.conf | 11 ++++++++++- src/modules/bootloader/bootloader.conf | 3 +++ src/modules/bootloader/module.desc | 2 ++ src/modules/contextualprocess/contextualprocess.conf | 3 +++ src/modules/displaymanager/displaymanager.conf | 3 +++ src/modules/displaymanager/module.desc | 2 ++ src/modules/dracut/module.desc | 2 ++ src/modules/dummycpp/dummycpp.conf | 3 +++ src/modules/dummycpp/module.desc | 2 ++ src/modules/dummyprocess/module.desc | 2 ++ src/modules/dummypython/dummypython.conf | 3 +++ src/modules/dummypython/module.desc | 2 ++ src/modules/dummypythonqt/dummypythonqt.conf | 3 +++ src/modules/dummypythonqt/module.desc | 2 ++ src/modules/finished/finished.conf | 3 +++ src/modules/fsresizer/fsresizer.conf | 3 +++ src/modules/fstab/fstab.conf | 3 +++ src/modules/fstab/module.desc | 2 ++ src/modules/grubcfg/grubcfg.conf | 3 +++ src/modules/grubcfg/module.desc | 2 ++ src/modules/hwclock/module.desc | 2 ++ src/modules/initcpio/initcpio.conf | 3 +++ src/modules/initcpiocfg/module.desc | 2 ++ src/modules/initramfs/initramfs.conf | 3 +++ src/modules/initramfscfg/module.desc | 2 ++ .../interactiveterminal/interactiveterminal.conf | 3 +++ src/modules/keyboard/keyboard.conf | 3 +++ src/modules/keyboardq/keyboardq.conf | 3 +++ src/modules/license/license.conf | 3 +++ src/modules/locale/locale.conf | 3 +++ src/modules/localecfg/module.desc | 2 ++ src/modules/localeq/localeq.conf | 3 +++ .../luksopenswaphookcfg/luksopenswaphookcfg.conf | 3 +++ src/modules/luksopenswaphookcfg/module.desc | 2 ++ src/modules/machineid/machineid.conf | 3 +++ src/modules/mkinitfs/module.desc | 2 ++ src/modules/mount/module.desc | 2 ++ src/modules/mount/mount.conf | 3 +++ src/modules/netinstall/netinstall.conf | 3 +++ src/modules/networkcfg/module.desc | 2 ++ src/modules/notesqml/notesqml.conf | 3 +++ src/modules/oemid/oemid.conf | 3 +++ src/modules/openrcdmcryptcfg/module.desc | 2 ++ src/modules/openrcdmcryptcfg/openrcdmcryptcfg.conf | 3 +++ src/modules/packagechooser/packagechooser.conf | 3 +++ src/modules/packages/module.desc | 2 ++ src/modules/packages/packages.conf | 3 +++ src/modules/partition/partition.conf | 3 +++ src/modules/plasmalnf/plasmalnf.conf | 3 +++ src/modules/plymouthcfg/module.desc | 2 ++ src/modules/plymouthcfg/plymouthcfg.conf | 3 +++ src/modules/preservefiles/preservefiles.conf | 3 +++ src/modules/rawfs/module.desc | 2 ++ src/modules/rawfs/rawfs.conf | 3 +++ src/modules/removeuser/removeuser.conf | 3 +++ src/modules/services-openrc/module.desc | 2 ++ src/modules/services-openrc/services-openrc.conf | 3 +++ src/modules/services-systemd/module.desc | 2 ++ src/modules/services-systemd/services-systemd.conf | 3 +++ src/modules/shellprocess/shellprocess.conf | 3 +++ src/modules/tracking/tracking.conf | 3 +++ src/modules/umount/module.desc | 2 ++ src/modules/umount/umount.conf | 3 +++ src/modules/unpackfs/module.desc | 2 ++ src/modules/unpackfs/unpackfs.conf | 3 +++ src/modules/users/tests/3-wing.conf | 3 +++ src/modules/users/tests/4-audio.conf | 3 +++ src/modules/users/users.conf | 3 +++ src/modules/usersq/usersq.conf | 3 +++ src/modules/webview/owncloud.conf | 3 +++ src/modules/webview/webview.conf | 3 +++ src/modules/welcome/welcome.conf | 3 +++ src/modules/welcomeq/welcomeq.conf | 3 +++ 73 files changed, 201 insertions(+), 1 deletion(-) diff --git a/settings.conf b/settings.conf index 1c73ea381..17e4d690c 100644 --- a/settings.conf +++ b/settings.conf @@ -1,5 +1,14 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration file for Calamares -# Syntax is YAML 1.2 +# +# This is the top-level configuration file for Calamares. +# It specifies what modules will be used, as well as some +# overall characteristics -- is this a setup program, or +# an installer. More specific configuration is devolved +# to the branding file (for the UI) and the individual +# module configuration files (for functionality). --- # Modules can be job modules (with different interfaces) and QtWidgets view # modules. They could all be placed in a number of different paths. diff --git a/src/modules/bootloader/bootloader.conf b/src/modules/bootloader/bootloader.conf index 808a5e6d0..f471c2ee0 100644 --- a/src/modules/bootloader/bootloader.conf +++ b/src/modules/bootloader/bootloader.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Bootloader configuration. The bootloader is installed to allow # the system to start (and pick one of the installed operating # systems to run). diff --git a/src/modules/bootloader/module.desc b/src/modules/bootloader/module.desc index 083e1f4b5..44a1c0ee5 100644 --- a/src/modules/bootloader/module.desc +++ b/src/modules/bootloader/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" interface: "python" diff --git a/src/modules/contextualprocess/contextualprocess.conf b/src/modules/contextualprocess/contextualprocess.conf index 0f5972d04..b86fd922c 100644 --- a/src/modules/contextualprocess/contextualprocess.conf +++ b/src/modules/contextualprocess/contextualprocess.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the contextual process job. # # Contextual processes are based on **global** configuration values. diff --git a/src/modules/displaymanager/displaymanager.conf b/src/modules/displaymanager/displaymanager.conf index f6b5a397f..7175c112d 100644 --- a/src/modules/displaymanager/displaymanager.conf +++ b/src/modules/displaymanager/displaymanager.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configure one or more display managers (e.g. SDDM) # with a "best effort" approach. # diff --git a/src/modules/displaymanager/module.desc b/src/modules/displaymanager/module.desc index 56d3fcb07..a58941879 100644 --- a/src/modules/displaymanager/module.desc +++ b/src/modules/displaymanager/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "displaymanager" diff --git a/src/modules/dracut/module.desc b/src/modules/dracut/module.desc index 6d808ac88..9029bf66b 100644 --- a/src/modules/dracut/module.desc +++ b/src/modules/dracut/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "dracut" diff --git a/src/modules/dummycpp/dummycpp.conf b/src/modules/dummycpp/dummycpp.conf index 1f2e1daee..b00a42825 100644 --- a/src/modules/dummycpp/dummycpp.conf +++ b/src/modules/dummycpp/dummycpp.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # This is a dummy (example) module for C++ Jobs. # # The code is the documentation for the configuration file. diff --git a/src/modules/dummycpp/module.desc b/src/modules/dummycpp/module.desc index 11b9c500c..bc768a17a 100644 --- a/src/modules/dummycpp/module.desc +++ b/src/modules/dummycpp/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 # Module metadata file for dummycpp job # # The metadata for C++ (qtplugin) plugins is almost never interesting: diff --git a/src/modules/dummyprocess/module.desc b/src/modules/dummyprocess/module.desc index 55d11cfab..a329b7725 100644 --- a/src/modules/dummyprocess/module.desc +++ b/src/modules/dummyprocess/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 # Module metadata file for dummy process jobmodule # Syntax is YAML 1.2 --- diff --git a/src/modules/dummypython/dummypython.conf b/src/modules/dummypython/dummypython.conf index c700120e7..6ea50c5d1 100644 --- a/src/modules/dummypython/dummypython.conf +++ b/src/modules/dummypython/dummypython.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # This is a dummy (example) module for a Python Job Module. # # The code is the documentation for the configuration file. diff --git a/src/modules/dummypython/module.desc b/src/modules/dummypython/module.desc index ebe81af1a..52c1d09d2 100644 --- a/src/modules/dummypython/module.desc +++ b/src/modules/dummypython/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 # Module metadata file for dummy python jobmodule # Syntax is YAML 1.2 --- diff --git a/src/modules/dummypythonqt/dummypythonqt.conf b/src/modules/dummypythonqt/dummypythonqt.conf index 5bc64abfa..6caf9cc18 100644 --- a/src/modules/dummypythonqt/dummypythonqt.conf +++ b/src/modules/dummypythonqt/dummypythonqt.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # This is a dummy (example) module for PythonQt. # # The code is the documentation for the configuration file. diff --git a/src/modules/dummypythonqt/module.desc b/src/modules/dummypythonqt/module.desc index 46633a6db..a747daeaa 100644 --- a/src/modules/dummypythonqt/module.desc +++ b/src/modules/dummypythonqt/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 # Module metadata file for dummy pythonqt jobmodule # Syntax is YAML 1.2 --- diff --git a/src/modules/finished/finished.conf b/src/modules/finished/finished.conf index 3b6dd9dd1..7abfb36f1 100644 --- a/src/modules/finished/finished.conf +++ b/src/modules/finished/finished.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the "finished" page, which is usually shown only at # the end of the installation (successful or not). --- diff --git a/src/modules/fsresizer/fsresizer.conf b/src/modules/fsresizer/fsresizer.conf index 33329248d..e58c39822 100644 --- a/src/modules/fsresizer/fsresizer.conf +++ b/src/modules/fsresizer/fsresizer.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Module that resizes a single FS to fill the entire (rest) of # a device. This is used in OEM situations where an image is # flashed onto an SD card (or similar) and used to boot a device, diff --git a/src/modules/fstab/fstab.conf b/src/modules/fstab/fstab.conf index ce38a184c..21f6ffce3 100644 --- a/src/modules/fstab/fstab.conf +++ b/src/modules/fstab/fstab.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Creates /etc/fstab and /etc/crypttab in the target system. # Also creates mount points for all the filesystems. # diff --git a/src/modules/fstab/module.desc b/src/modules/fstab/module.desc index bbd416606..77cb7adbc 100644 --- a/src/modules/fstab/module.desc +++ b/src/modules/fstab/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "fstab" diff --git a/src/modules/grubcfg/grubcfg.conf b/src/modules/grubcfg/grubcfg.conf index 374561787..33c2a72ab 100644 --- a/src/modules/grubcfg/grubcfg.conf +++ b/src/modules/grubcfg/grubcfg.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Create, overwrite or update /etc/default/grub in the target system. # # Write lines to /etc/default/grub (in the target system) based diff --git a/src/modules/grubcfg/module.desc b/src/modules/grubcfg/module.desc index 34f1a5a1e..293e75ba7 100644 --- a/src/modules/grubcfg/module.desc +++ b/src/modules/grubcfg/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "grubcfg" diff --git a/src/modules/hwclock/module.desc b/src/modules/hwclock/module.desc index ba3dbbaf8..d13435b3c 100644 --- a/src/modules/hwclock/module.desc +++ b/src/modules/hwclock/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "hwclock" diff --git a/src/modules/initcpio/initcpio.conf b/src/modules/initcpio/initcpio.conf index 517e48392..717a511df 100644 --- a/src/modules/initcpio/initcpio.conf +++ b/src/modules/initcpio/initcpio.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Run mkinitcpio(8) with the given preset value --- # This key defines the kernel to be loaded. diff --git a/src/modules/initcpiocfg/module.desc b/src/modules/initcpiocfg/module.desc index 936a99bbe..a4476121b 100644 --- a/src/modules/initcpiocfg/module.desc +++ b/src/modules/initcpiocfg/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "initcpiocfg" diff --git a/src/modules/initramfs/initramfs.conf b/src/modules/initramfs/initramfs.conf index a989d83c3..c9dcf1697 100644 --- a/src/modules/initramfs/initramfs.conf +++ b/src/modules/initramfs/initramfs.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# ## initramfs module # # This module is specific to Debian based distros. Post installation on Debian diff --git a/src/modules/initramfscfg/module.desc b/src/modules/initramfscfg/module.desc index c00e8170f..17db29465 100644 --- a/src/modules/initramfscfg/module.desc +++ b/src/modules/initramfscfg/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "initramfscfg" diff --git a/src/modules/interactiveterminal/interactiveterminal.conf b/src/modules/interactiveterminal/interactiveterminal.conf index 067bce8be..9354f8f4a 100644 --- a/src/modules/interactiveterminal/interactiveterminal.conf +++ b/src/modules/interactiveterminal/interactiveterminal.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # The interactive terminal provides a konsole (terminal) window # during the installation process. The terminal runs in the # host system, so you will need to change directories to the diff --git a/src/modules/keyboard/keyboard.conf b/src/modules/keyboard/keyboard.conf index ee97c3939..d122f30d7 100644 --- a/src/modules/keyboard/keyboard.conf +++ b/src/modules/keyboard/keyboard.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # NOTE: you must have ckbcomp installed and runnable # on the live system, for keyboard layout previews. --- diff --git a/src/modules/keyboardq/keyboardq.conf b/src/modules/keyboardq/keyboardq.conf index ee97c3939..d122f30d7 100644 --- a/src/modules/keyboardq/keyboardq.conf +++ b/src/modules/keyboardq/keyboardq.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # NOTE: you must have ckbcomp installed and runnable # on the live system, for keyboard layout previews. --- diff --git a/src/modules/license/license.conf b/src/modules/license/license.conf index 8a1672887..e32d49984 100644 --- a/src/modules/license/license.conf +++ b/src/modules/license/license.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration file for License viewmodule, Calamares # Syntax is YAML 1.2 --- diff --git a/src/modules/locale/locale.conf b/src/modules/locale/locale.conf index 8236a879b..4463f7a94 100644 --- a/src/modules/locale/locale.conf +++ b/src/modules/locale/locale.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# --- # These settings are used to set your default system time zone. # Time zones are usually located under /usr/share/zoneinfo and diff --git a/src/modules/localecfg/module.desc b/src/modules/localecfg/module.desc index 4b8cd9e6d..030846a3e 100644 --- a/src/modules/localecfg/module.desc +++ b/src/modules/localecfg/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 # Enable the configured locales (those set by the user on the # user page) in /etc/locale.gen, if they are available in the # target system. diff --git a/src/modules/localeq/localeq.conf b/src/modules/localeq/localeq.conf index 4beb4fe85..bb2a7e816 100644 --- a/src/modules/localeq/localeq.conf +++ b/src/modules/localeq/localeq.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# --- # This settings are used to set your default system time zone. # Time zones are usually located under /usr/share/zoneinfo and diff --git a/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.conf b/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.conf index f5610cd7c..f1f03bbe4 100644 --- a/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.conf +++ b/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Writes an openswap configuration with LUKS settings to the given path --- # Path of the configuration file to write (in the target system) diff --git a/src/modules/luksopenswaphookcfg/module.desc b/src/modules/luksopenswaphookcfg/module.desc index 53f8b7c39..919a92792 100644 --- a/src/modules/luksopenswaphookcfg/module.desc +++ b/src/modules/luksopenswaphookcfg/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "luksopenswaphookcfg" diff --git a/src/modules/machineid/machineid.conf b/src/modules/machineid/machineid.conf index fa42655fd..5ebf17c8c 100644 --- a/src/modules/machineid/machineid.conf +++ b/src/modules/machineid/machineid.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Machine-ID and other random data on the target system. # # This module can create a number of "random" things on the target: diff --git a/src/modules/mkinitfs/module.desc b/src/modules/mkinitfs/module.desc index 06541fb87..decc3259f 100644 --- a/src/modules/mkinitfs/module.desc +++ b/src/modules/mkinitfs/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "mkinitfs" diff --git a/src/modules/mount/module.desc b/src/modules/mount/module.desc index 13e411716..e4486cf12 100644 --- a/src/modules/mount/module.desc +++ b/src/modules/mount/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "mount" diff --git a/src/modules/mount/mount.conf b/src/modules/mount/mount.conf index bb28eed66..1e70465c2 100644 --- a/src/modules/mount/mount.conf +++ b/src/modules/mount/mount.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Mount filesystems in the target (generally, before treating the # target as a usable chroot / "live" system). Filesystems are # automatically mounted from the partitioning module. Filesystems diff --git a/src/modules/netinstall/netinstall.conf b/src/modules/netinstall/netinstall.conf index db4d65da0..f96da9a8e 100644 --- a/src/modules/netinstall/netinstall.conf +++ b/src/modules/netinstall/netinstall.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# ### Netinstall module # # The netinstall module allows distribution maintainers to ship minimal ISOs diff --git a/src/modules/networkcfg/module.desc b/src/modules/networkcfg/module.desc index 68024cb8d..cbafe8cd5 100644 --- a/src/modules/networkcfg/module.desc +++ b/src/modules/networkcfg/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "networkcfg" diff --git a/src/modules/notesqml/notesqml.conf b/src/modules/notesqml/notesqml.conf index 88948bf64..c65f98879 100644 --- a/src/modules/notesqml/notesqml.conf +++ b/src/modules/notesqml/notesqml.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # The *notesqml* module can be used to display a QML file # as an installer step. This is most useful for release-notes # and similar somewhat-static content, but if you want to you diff --git a/src/modules/oemid/oemid.conf b/src/modules/oemid/oemid.conf index 8f9bc3d08..921fb3b30 100644 --- a/src/modules/oemid/oemid.conf +++ b/src/modules/oemid/oemid.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # This is an OEM setup (phase-0) configuration file. --- # The batch-identifier is written to /var/log/installer/oem-id. diff --git a/src/modules/openrcdmcryptcfg/module.desc b/src/modules/openrcdmcryptcfg/module.desc index 283adfdac..e63339573 100644 --- a/src/modules/openrcdmcryptcfg/module.desc +++ b/src/modules/openrcdmcryptcfg/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "openrcdmcryptcfg" diff --git a/src/modules/openrcdmcryptcfg/openrcdmcryptcfg.conf b/src/modules/openrcdmcryptcfg/openrcdmcryptcfg.conf index 57ee2dc31..911a4eff3 100644 --- a/src/modules/openrcdmcryptcfg/openrcdmcryptcfg.conf +++ b/src/modules/openrcdmcryptcfg/openrcdmcryptcfg.conf @@ -1,2 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# --- configFilePath: /etc/conf.d/dmcrypt diff --git a/src/modules/packagechooser/packagechooser.conf b/src/modules/packagechooser/packagechooser.conf index 68330337b..bb824c5e7 100644 --- a/src/modules/packagechooser/packagechooser.conf +++ b/src/modules/packagechooser/packagechooser.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the low-density software chooser --- # The packagechooser writes a GlobalStorage value for the choice that diff --git a/src/modules/packages/module.desc b/src/modules/packages/module.desc index 6a0423614..3e3053bfa 100644 --- a/src/modules/packages/module.desc +++ b/src/modules/packages/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "packages" diff --git a/src/modules/packages/packages.conf b/src/modules/packages/packages.conf index df477e6e9..b1289ad51 100644 --- a/src/modules/packages/packages.conf +++ b/src/modules/packages/packages.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# --- # # Which package manager to use, options are: diff --git a/src/modules/partition/partition.conf b/src/modules/partition/partition.conf index 363ef7db1..4075fd273 100644 --- a/src/modules/partition/partition.conf +++ b/src/modules/partition/partition.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # This setting specifies the mount point of the EFI system partition. Some # distributions (Fedora, Debian, Manjaro, etc.) use /boot/efi, others (KaOS, # etc.) use just /boot. diff --git a/src/modules/plasmalnf/plasmalnf.conf b/src/modules/plasmalnf/plasmalnf.conf index a954c685a..fd59389a8 100644 --- a/src/modules/plasmalnf/plasmalnf.conf +++ b/src/modules/plasmalnf/plasmalnf.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # The Plasma Look-and-Feel module allows selecting a Plasma # Look-and-Feel in the live- or host-system and switches the # host Plasma session immediately to the chosen LnF; it diff --git a/src/modules/plymouthcfg/module.desc b/src/modules/plymouthcfg/module.desc index f2d2d4743..660aa71b2 100644 --- a/src/modules/plymouthcfg/module.desc +++ b/src/modules/plymouthcfg/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "plymouthcfg" diff --git a/src/modules/plymouthcfg/plymouthcfg.conf b/src/modules/plymouthcfg/plymouthcfg.conf index 47c54f5ff..ebe51d1ed 100644 --- a/src/modules/plymouthcfg/plymouthcfg.conf +++ b/src/modules/plymouthcfg/plymouthcfg.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Plymouth Configuration Module # # This module can be used to setup the default plymouth theme to diff --git a/src/modules/preservefiles/preservefiles.conf b/src/modules/preservefiles/preservefiles.conf index 671a308cc..962ca756a 100644 --- a/src/modules/preservefiles/preservefiles.conf +++ b/src/modules/preservefiles/preservefiles.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the preserve-files job # # The *files* key contains a list of files to preserve. Each element of diff --git a/src/modules/rawfs/module.desc b/src/modules/rawfs/module.desc index aaf65c183..0c4f21f92 100644 --- a/src/modules/rawfs/module.desc +++ b/src/modules/rawfs/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 # Module metadata file for block-copy jobmodule # Syntax is YAML 1.2 --- diff --git a/src/modules/rawfs/rawfs.conf b/src/modules/rawfs/rawfs.conf index 8d7da3ba3..bbc36906b 100644 --- a/src/modules/rawfs/rawfs.conf +++ b/src/modules/rawfs/rawfs.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the rawfs module: raw filesystem copy to a block device --- diff --git a/src/modules/removeuser/removeuser.conf b/src/modules/removeuser/removeuser.conf index d266e6952..cc086e723 100644 --- a/src/modules/removeuser/removeuser.conf +++ b/src/modules/removeuser/removeuser.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Removes a single user (with userdel) from the system. # This is typically used in OEM setups or if the live user # spills into the target system. diff --git a/src/modules/services-openrc/module.desc b/src/modules/services-openrc/module.desc index 4b0b51614..c60872bc1 100644 --- a/src/modules/services-openrc/module.desc +++ b/src/modules/services-openrc/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "services-openrc" diff --git a/src/modules/services-openrc/services-openrc.conf b/src/modules/services-openrc/services-openrc.conf index b8255b21a..6042b5305 100644 --- a/src/modules/services-openrc/services-openrc.conf +++ b/src/modules/services-openrc/services-openrc.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # openrc services module to modify service runlevels via rc-update in the chroot # # Services can be added (to any runlevel, or multiple runlevels) or deleted. diff --git a/src/modules/services-systemd/module.desc b/src/modules/services-systemd/module.desc index 4305b1141..e016c6dcb 100644 --- a/src/modules/services-systemd/module.desc +++ b/src/modules/services-systemd/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "services-systemd" diff --git a/src/modules/services-systemd/services-systemd.conf b/src/modules/services-systemd/services-systemd.conf index 6ff1409bf..77224b00b 100644 --- a/src/modules/services-systemd/services-systemd.conf +++ b/src/modules/services-systemd/services-systemd.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Systemd services manipulation. # # This module can enable services and targets for systemd diff --git a/src/modules/shellprocess/shellprocess.conf b/src/modules/shellprocess/shellprocess.conf index 4734aaadd..00d88851f 100644 --- a/src/modules/shellprocess/shellprocess.conf +++ b/src/modules/shellprocess/shellprocess.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the shell process job. # # Executes a list of commands found under the key *script*. diff --git a/src/modules/tracking/tracking.conf b/src/modules/tracking/tracking.conf index 533d0e0dd..6f726226d 100644 --- a/src/modules/tracking/tracking.conf +++ b/src/modules/tracking/tracking.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Settings for various kinds of tracking that Distributions can # enable. Distributions looking at tracking should be aware of # the privacy (and hence communications) impact of that tracking, diff --git a/src/modules/umount/module.desc b/src/modules/umount/module.desc index a1ead1228..a1c189a62 100644 --- a/src/modules/umount/module.desc +++ b/src/modules/umount/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- type: "job" name: "umount" diff --git a/src/modules/umount/umount.conf b/src/modules/umount/umount.conf index 3d4eb7d95..b6d86e353 100644 --- a/src/modules/umount/umount.conf +++ b/src/modules/umount/umount.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# ### Umount Module # # This module represents the last part of the installation, the unmounting diff --git a/src/modules/unpackfs/module.desc b/src/modules/unpackfs/module.desc index c87613d74..2723c3c46 100644 --- a/src/modules/unpackfs/module.desc +++ b/src/modules/unpackfs/module.desc @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 # Syntax is YAML 1.2 --- type: "job" diff --git a/src/modules/unpackfs/unpackfs.conf b/src/modules/unpackfs/unpackfs.conf index 454e82e66..2c4a25a80 100644 --- a/src/modules/unpackfs/unpackfs.conf +++ b/src/modules/unpackfs/unpackfs.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Unsquash / unpack a filesystem. Multiple sources are supported, and # they may be squashed or plain filesystems. # diff --git a/src/modules/users/tests/3-wing.conf b/src/modules/users/tests/3-wing.conf index 3c7dc61af..4fc760fa8 100644 --- a/src/modules/users/tests/3-wing.conf +++ b/src/modules/users/tests/3-wing.conf @@ -1,2 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# --- defaultGroups: [ wing, wheel, users ] diff --git a/src/modules/users/tests/4-audio.conf b/src/modules/users/tests/4-audio.conf index fb7fdb3d2..1280bc207 100644 --- a/src/modules/users/tests/4-audio.conf +++ b/src/modules/users/tests/4-audio.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# --- defaultGroups: - users diff --git a/src/modules/users/users.conf b/src/modules/users/users.conf index 259723df2..ee1ccbf1c 100644 --- a/src/modules/users/users.conf +++ b/src/modules/users/users.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the one-user-system user module. # # Besides these settings, the user module also places the following diff --git a/src/modules/usersq/usersq.conf b/src/modules/usersq/usersq.conf index f416a5c39..19a30bd02 100644 --- a/src/modules/usersq/usersq.conf +++ b/src/modules/usersq/usersq.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # For documentation see Users Module users.conf # --- diff --git a/src/modules/webview/owncloud.conf b/src/modules/webview/owncloud.conf index 46b639ade..4e2930919 100644 --- a/src/modules/webview/owncloud.conf +++ b/src/modules/webview/owncloud.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# --- prettyName: "OwnCloud" url: "https://owncloud.org" diff --git a/src/modules/webview/webview.conf b/src/modules/webview/webview.conf index c4e6568e9..353f81488 100644 --- a/src/modules/webview/webview.conf +++ b/src/modules/webview/webview.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# --- prettyName: "Webview" url: "https://calamares.io" diff --git a/src/modules/welcome/welcome.conf b/src/modules/welcome/welcome.conf index 45cb654a2..bd15a6f2d 100644 --- a/src/modules/welcome/welcome.conf +++ b/src/modules/welcome/welcome.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the welcome module. The welcome page # displays some information from the branding file. # Which parts it displays can be configured through diff --git a/src/modules/welcomeq/welcomeq.conf b/src/modules/welcomeq/welcomeq.conf index 035db9714..2efc51473 100644 --- a/src/modules/welcomeq/welcomeq.conf +++ b/src/modules/welcomeq/welcomeq.conf @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Configuration for the welcomeq module. # # The configuration for welcomeq is exactly the same From 5523bffbf211e124bdf5cf087790a6c8b0309782 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 01:41:30 +0200 Subject: [PATCH 22/54] REUSE: administrative and repo-meta files - Mostly CC0 because they're not interesting - formatting, git, travis, transifex - Some BSD-2-Clause because of habit - CMake and shell-script-like files --- .clang-format | 2 ++ .editorconfig | 3 ++- .gitattributes | 3 +++ .gitignore | 3 +++ .travis.yml | 3 +++ .tx/config | 3 +++ AUTHORS | 4 ++++ CHANGES | 4 ++++ CalamaresConfig.cmake.in | 7 +++++++ Dockerfile | 3 +++ README.md | 4 ++++ cmake_uninstall.cmake.in | 3 +++ com.github.calamares.calamares.policy | 5 ++++- io.calamares.calamares.appdata.xml | 3 +++ 14 files changed, 48 insertions(+), 2 deletions(-) diff --git a/.clang-format b/.clang-format index 187c3638f..aa4aa0e2a 100644 --- a/.clang-format +++ b/.clang-format @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 --- BasedOnStyle: WebKit diff --git a/.editorconfig b/.editorconfig index d5851076b..44e191e5c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,5 @@ -# http://EditorConfig.org +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 root = true diff --git a/.gitattributes b/.gitattributes index 3b8a7f1e8..6a8126fad 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 + .editorconfig export-ignore .gitattributes export-ignore .github export-ignore diff --git a/.gitignore b/.gitignore index da0f082a6..5bf3c57ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # C++ objects and libs *.slo diff --git a/.travis.yml b/.travis.yml index 2b11af912..1df81a6bf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# language: cpp python: diff --git a/.tx/config b/.tx/config index 686a98bbe..65a8521b5 100644 --- a/.tx/config +++ b/.tx/config @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 + [main] host = https://www.transifex.com diff --git a/AUTHORS b/AUTHORS index ecd0aafc8..912d48da7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,3 +1,7 @@ + + # MAINTAINER Calamares development is sponsored by Blue Systems GmbH - Liberating Software. diff --git a/CHANGES b/CHANGES index b4e4fd5c0..d1ea088bd 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ + + This is the changelog for Calamares. For each release, the major changes and 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 diff --git a/CalamaresConfig.cmake.in b/CalamaresConfig.cmake.in index 4c62fb477..f51b5991d 100644 --- a/CalamaresConfig.cmake.in +++ b/CalamaresConfig.cmake.in @@ -1,3 +1,10 @@ +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# +# Note that Calamares itself is GPL-3.0-or-later: the above license +# applies to **this** CMake file. +# # Config file for the Calamares package # # The following IMPORTED targets are defined: diff --git a/Dockerfile b/Dockerfile index 2c8be23a0..7a1cad92a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,2 +1,5 @@ +# SPDX-FileCopyrightText: 2017 Rohan Garg +# SPDX-License-Identifier: BSD-2-Clause + FROM kdeneon/all:user RUN sudo apt-get update && sudo apt-get -y install build-essential cmake extra-cmake-modules gettext kio-dev libatasmart-dev libboost-python-dev libkf5config-dev libkf5coreaddons-dev libkf5i18n-dev libkf5iconthemes-dev libkf5parts-dev libkf5service-dev libkf5solid-dev libkpmcore-dev libparted-dev libpolkit-qt5-1-dev libqt5svg5-dev libqt5webkit5-dev libyaml-cpp-dev os-prober pkg-config python3-dev qtbase5-dev qtdeclarative5-dev qttools5-dev qttools5-dev-tools diff --git a/README.md b/README.md index 2544ebb69..3ba9221d6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ + + ### Calamares: Distribution-Independent Installer Framework --------- diff --git a/cmake_uninstall.cmake.in b/cmake_uninstall.cmake.in index df95fb9d8..d223136a9 100644 --- a/cmake_uninstall.cmake.in +++ b/cmake_uninstall.cmake.in @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-License-Identifier: BSD-2-Clause + IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") diff --git a/com.github.calamares.calamares.policy b/com.github.calamares.calamares.policy index 6bc250e3b..976ec0f1a 100644 --- a/com.github.calamares.calamares.policy +++ b/com.github.calamares.calamares.policy @@ -1,4 +1,7 @@ + @@ -19,4 +22,4 @@ /usr/bin/calamares true - \ No newline at end of file + diff --git a/io.calamares.calamares.appdata.xml b/io.calamares.calamares.appdata.xml index d49a33b0f..9b1f883bd 100644 --- a/io.calamares.calamares.appdata.xml +++ b/io.calamares.calamares.appdata.xml @@ -1,4 +1,7 @@ + io.calamares.calamares.desktop CC0-1.0 From 863a4cc2a49c5424fef8175031317e58c5906071 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Aug 2020 16:36:47 +0200 Subject: [PATCH 23/54] REUSE: (GPL-3.0-or-later) Python modules --- src/modules/bootloader/main.py | 23 ++++++++++++----------- src/modules/displaymanager/main.py | 15 ++++++++------- src/modules/dracut/main.py | 9 +++++---- src/modules/dummypython/main.py | 7 ++++--- src/modules/dummypythonqt/main.py | 5 +++-- src/modules/fstab/main.py | 9 +++++---- src/modules/grubcfg/main.py | 11 ++++++----- src/modules/hwclock/main.py | 11 ++++++----- src/modules/initcpiocfg/main.py | 9 +++++---- src/modules/initramfscfg/main.py | 13 +++++++------ src/modules/localecfg/main.py | 11 ++++++----- src/modules/luksopenswaphookcfg/main.py | 7 ++++--- src/modules/mkinitfs/main.py | 9 +++++---- src/modules/mount/main.py | 9 +++++---- src/modules/networkcfg/main.py | 9 +++++---- src/modules/openrcdmcryptcfg/main.py | 5 +++-- src/modules/packages/main.py | 13 +++++++------ src/modules/plymouthcfg/main.py | 9 +++++---- src/modules/rawfs/main.py | 3 ++- src/modules/services-openrc/main.py | 9 +++++---- src/modules/services-systemd/main.py | 9 +++++---- src/modules/umount/main.py | 7 ++++--- src/modules/unpackfs/main.py | 15 ++++++++------- src/modules/unpackfs/runtests.sh | 8 ++++++++ 24 files changed, 133 insertions(+), 102 deletions(-) diff --git a/src/modules/bootloader/main.py b/src/modules/bootloader/main.py index 87288b583..bfb695909 100644 --- a/src/modules/bootloader/main.py +++ b/src/modules/bootloader/main.py @@ -3,17 +3,18 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Aurélien Gâteau -# Copyright 2014, Anke Boersma -# Copyright 2014, Daniel Hillenbrand -# Copyright 2014, Benjamin Vaudour -# Copyright 2014-2019, Kevin Kofler -# Copyright 2015-2018, Philip Mueller -# Copyright 2016-2017, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# Copyright 2017-2019, Adriaan de Groot -# Copyright 2017, Gabriel Craciunescu -# Copyright 2017, Ben Green +# SPDX-FileCopyrightText: 2014 Aurélien Gâteau +# SPDX-FileCopyrightText: 2014 Anke Boersma +# SPDX-FileCopyrightText: 2014 Daniel Hillenbrand +# SPDX-FileCopyrightText: 2014 Benjamin Vaudour +# SPDX-FileCopyrightText: 2014-2019 Kevin Kofler +# SPDX-FileCopyrightText: 2015-2018 Philip Mueller +# SPDX-FileCopyrightText: 2016-2017 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot +# SPDX-FileCopyrightText: 2017 Gabriel Craciunescu +# SPDX-FileCopyrightText: 2017 Ben Green +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/displaymanager/main.py b/src/modules/displaymanager/main.py index 1529aab17..509257bb1 100644 --- a/src/modules/displaymanager/main.py +++ b/src/modules/displaymanager/main.py @@ -3,13 +3,14 @@ # # === This file is part of Calamares - === # -# Copyright 2014-2018, Philip Müller -# Copyright 2014-2015, Teo Mrnjavac -# Copyright 2014, Kevin Kofler -# Copyright 2017, Alf Gaida -# Copyright 2017, Bernhard Landauer -# Copyright 2017, 2019, Adriaan de Groot -# Copyright 2019, Dominic Hayes +# SPDX-FileCopyrightText: 2014-2018 Philip Müller +# SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac +# SPDX-FileCopyrightText: 2014 Kevin Kofler +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2017 Bernhard Landauer +# SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2019 Dominic Hayes +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/dracut/main.py b/src/modules/dracut/main.py index a929ac70b..2a5ba91d7 100644 --- a/src/modules/dracut/main.py +++ b/src/modules/dracut/main.py @@ -3,10 +3,11 @@ # # === This file is part of Calamares - === # -# Copyright 2014-2015, Philip Müller -# Copyright 2014, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# Copyright 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2014-2015 Philip Müller +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/dummypython/main.py b/src/modules/dummypython/main.py index 96de6030f..2f21e9b77 100644 --- a/src/modules/dummypython/main.py +++ b/src/modules/dummypython/main.py @@ -3,9 +3,10 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# Copyright 2017, Adriaan de Groot +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2017 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/dummypythonqt/main.py b/src/modules/dummypythonqt/main.py index f830caf30..c08b79fbb 100644 --- a/src/modules/dummypythonqt/main.py +++ b/src/modules/dummypythonqt/main.py @@ -3,8 +3,9 @@ # # === This file is part of Calamares - === # -# Copyright 2016-2017, Teo Mrnjavac -# Copyright 2017, Alf Gaida +# SPDX-FileCopyrightText: 2016-2017 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/fstab/main.py b/src/modules/fstab/main.py index c58e8eb11..19af12b9e 100644 --- a/src/modules/fstab/main.py +++ b/src/modules/fstab/main.py @@ -3,10 +3,11 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Aurélien Gâteau -# Copyright 2016, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# Copyright 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2014 Aurélien Gâteau +# SPDX-FileCopyrightText: 2016 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py index fad6d3677..be9752402 100644 --- a/src/modules/grubcfg/main.py +++ b/src/modules/grubcfg/main.py @@ -3,11 +3,12 @@ # # === This file is part of Calamares - === # -# Copyright 2014-2015, Philip Müller -# Copyright 2015-2017, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# Copyright 2017, 2019, Adriaan de Groot -# Copyright 2017-2018, Gabriel Craciunescu +# SPDX-FileCopyrightText: 2014-2015 Philip Müller +# SPDX-FileCopyrightText: 2015-2017 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2017-2018 Gabriel Craciunescu +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/hwclock/main.py b/src/modules/hwclock/main.py index f18cf12a9..7cf5790f9 100644 --- a/src/modules/hwclock/main.py +++ b/src/modules/hwclock/main.py @@ -3,11 +3,12 @@ # # === This file is part of Calamares - === # -# Copyright 2014 - 2015, Philip Müller -# Copyright 2014, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# Copyright 2017-2018, Gabriel Craciunescu -# Copyright 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2014-2015 Philip Müller +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2017-2018 Gabriel Craciunescu +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index 3d570ff94..119fa5cf2 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -3,10 +3,11 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Rohan Garg -# Copyright 2015,2019-2020, Philip Müller -# Copyright 2017, Alf Gaida -# Copyright 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2014 Rohan Garg +# SPDX-FileCopyrightText: 2015 2019-2020, Philip Müller +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/initramfscfg/main.py b/src/modules/initramfscfg/main.py index 52d512567..e3b6d0439 100644 --- a/src/modules/initramfscfg/main.py +++ b/src/modules/initramfscfg/main.py @@ -3,12 +3,13 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Rohan Garg -# Copyright 2015, Philip Müller -# Copyright 2016, David McKinney -# Copyright 2016, Kevin Kofler -# Copyright 2017, Alf Gaida -# Copyright 2017, 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2014 Rohan Garg +# SPDX-FileCopyrightText: 2015 Philip Müller +# SPDX-FileCopyrightText: 2016 David McKinney +# SPDX-FileCopyrightText: 2016 Kevin Kofler +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/localecfg/main.py b/src/modules/localecfg/main.py index 9e50fb448..021f4a454 100644 --- a/src/modules/localecfg/main.py +++ b/src/modules/localecfg/main.py @@ -3,11 +3,12 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Anke Boersma -# Copyright 2015, Philip Müller -# Copyright 2016, Teo Mrnjavac -# Copyright 2018, AlmAck -# Copyright 2018-2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2014 Anke Boersma +# SPDX-FileCopyrightText: 2015 Philip Müller +# SPDX-FileCopyrightText: 2016 Teo Mrnjavac +# SPDX-FileCopyrightText: 2018 AlmAck +# SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/luksopenswaphookcfg/main.py b/src/modules/luksopenswaphookcfg/main.py index a30ae999b..96dfea83b 100644 --- a/src/modules/luksopenswaphookcfg/main.py +++ b/src/modules/luksopenswaphookcfg/main.py @@ -3,9 +3,10 @@ # # === This file is part of Calamares - === # -# Copyright 2016, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# Copyright 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2016 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/mkinitfs/main.py b/src/modules/mkinitfs/main.py index 7deac3914..cc9d80a37 100644 --- a/src/modules/mkinitfs/main.py +++ b/src/modules/mkinitfs/main.py @@ -3,10 +3,11 @@ # # === This file is part of Calamares - === # -# Copyright 2014-2015, Philip Müller -# Copyright 2014, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# Copyright 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2014-2015 Philip Müller +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/mount/main.py b/src/modules/mount/main.py index 4e16b43c3..caa5ea828 100644 --- a/src/modules/mount/main.py +++ b/src/modules/mount/main.py @@ -3,10 +3,11 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Aurélien Gâteau -# Copyright 2017, Alf Gaida -# Copyright 2019, Adriaan de Groot -# Copyright 2019, Kevin Kofler +# SPDX-FileCopyrightText: 2014 Aurélien Gâteau +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-FileCopyrightText: 2019 Kevin Kofler +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/networkcfg/main.py b/src/modules/networkcfg/main.py index 00a264f53..2db819945 100644 --- a/src/modules/networkcfg/main.py +++ b/src/modules/networkcfg/main.py @@ -3,10 +3,11 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Philip Müller -# Copyright 2014, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# Copyright 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2014 Philip Müller +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/openrcdmcryptcfg/main.py b/src/modules/openrcdmcryptcfg/main.py index 0362b421b..83b3a4c40 100644 --- a/src/modules/openrcdmcryptcfg/main.py +++ b/src/modules/openrcdmcryptcfg/main.py @@ -3,8 +3,9 @@ # # === This file is part of Calamares - === # -# Copyright 2017, Ghiunhan Mamut -# Copyright 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2017 Ghiunhan Mamut +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index 908d778b2..42cf3a4bd 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -3,12 +3,13 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Pier Luigi Fiorini -# Copyright 2015-2017, Teo Mrnjavac -# Copyright 2016-2017, Kyle Robbertze -# Copyright 2017, Alf Gaida -# Copyright 2018, Adriaan de Groot -# Copyright 2018, Philip Müller +# SPDX-FileCopyrightText: 2014 Pier Luigi Fiorini +# SPDX-FileCopyrightText: 2015-2017 Teo Mrnjavac +# SPDX-FileCopyrightText: 2016-2017 Kyle Robbertze +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2018 Adriaan de Groot +# SPDX-FileCopyrightText: 2018 Philip Müller +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/plymouthcfg/main.py b/src/modules/plymouthcfg/main.py index e224f5df0..404a4651c 100644 --- a/src/modules/plymouthcfg/main.py +++ b/src/modules/plymouthcfg/main.py @@ -3,10 +3,11 @@ # # === This file is part of Calamares - === # -# Copyright 2016, Artoo -# Copyright 2017, Alf Gaida -# Copyright 2018, Gabriel Craciunescu -# Copyright 2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2016 Artoo +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2018 Gabriel Craciunescu +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/rawfs/main.py b/src/modules/rawfs/main.py index 68f3c444e..cdce1d784 100644 --- a/src/modules/rawfs/main.py +++ b/src/modules/rawfs/main.py @@ -3,7 +3,8 @@ # # === This file is part of Calamares - === # -# Copyright 2019, Collabora Ltd +# SPDX-FileCopyrightText: 2019 Collabora Ltd +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/services-openrc/main.py b/src/modules/services-openrc/main.py index 23591fb84..f89369a7f 100644 --- a/src/modules/services-openrc/main.py +++ b/src/modules/services-openrc/main.py @@ -3,10 +3,11 @@ # # === This file is part of Calamares - === # -# Copyright 2016, Artoo -# Copyright 2017, Philip Müller -# Copyright 2018, Artoo -# Copyright 2018-2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2016 Artoo +# SPDX-FileCopyrightText: 2017 Philip Müller +# SPDX-FileCopyrightText: 2018 Artoo +# SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/services-systemd/main.py b/src/modules/services-systemd/main.py index cd13d9ce9..8932bc7e5 100644 --- a/src/modules/services-systemd/main.py +++ b/src/modules/services-systemd/main.py @@ -3,10 +3,11 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Philip Müller -# Copyright 2014, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# Copyright 2018-2019, Adriaan de Groot +# SPDX-FileCopyrightText: 2014 Philip Müller +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/umount/main.py b/src/modules/umount/main.py index 454222c5c..ea0976453 100644 --- a/src/modules/umount/main.py +++ b/src/modules/umount/main.py @@ -3,9 +3,10 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Aurélien Gâteau -# Copyright 2016, Anke Boersma -# Copyright 2018, Adriaan de Groot +# SPDX-FileCopyrightText: 2014 Aurélien Gâteau +# SPDX-FileCopyrightText: 2016 Anke Boersma +# SPDX-FileCopyrightText: 2018 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/unpackfs/main.py b/src/modules/unpackfs/main.py index 00de4165d..bd69125a1 100644 --- a/src/modules/unpackfs/main.py +++ b/src/modules/unpackfs/main.py @@ -3,13 +3,14 @@ # # === This file is part of Calamares - === # -# Copyright 2014, Teo Mrnjavac -# Copyright 2014, Daniel Hillenbrand -# Copyright 2014, Philip Müller -# Copyright 2017, Alf Gaida -# Copyright 2019, Kevin Kofler -# Copyright 2020, Adriaan de Groot -# Copyright 2020, Gabriel Craciunescu +# SPDX-FileCopyrightText: 2014 Teo Mrnjavac +# SPDX-FileCopyrightText: 2014 Daniel Hillenbrand +# SPDX-FileCopyrightText: 2014 Philip Müller +# SPDX-FileCopyrightText: 2017 Alf Gaida +# SPDX-FileCopyrightText: 2019 Kevin Kofler +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-FileCopyrightText: 2020 Gabriel Craciunescu +# SPDX-License-Identifier: GPL-3.0-or-later # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/modules/unpackfs/runtests.sh b/src/modules/unpackfs/runtests.sh index be175e0cd..2269b078a 100644 --- a/src/modules/unpackfs/runtests.sh +++ b/src/modules/unpackfs/runtests.sh @@ -1,4 +1,12 @@ #! /bin/sh +# +# SPDX-FileCopyrightText: 2019 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# +# Test preparation for unpackfs; since there's a bunch +# of fiddly bits than need to be present for the tests, +# do that in a script rather than entirely in CTest. +# SRCDIR=$( dirname "$0" ) # For test 3 From 30a85668b727ae839345d5cf6cec917fad681e4e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 22 Aug 2020 01:19:58 +0200 Subject: [PATCH 24/54] REUSE: (GPL-3.0-or-later) C++ modules --- src/modules/README.md | 5 + src/modules/contextualprocess/Binding.h | 3 +- .../ContextualProcessJob.cpp | 5 +- .../contextualprocess/ContextualProcessJob.h | 3 +- src/modules/contextualprocess/Tests.cpp | 3 +- src/modules/contextualprocess/Tests.h | 3 +- .../dracutlukscfg/DracutLuksCfgJob.cpp | 3 +- src/modules/dracutlukscfg/DracutLuksCfgJob.h | 5 +- src/modules/dummycpp/DummyCppJob.cpp | 7 +- src/modules/dummycpp/DummyCppJob.h | 5 +- src/modules/finished/FinishedPage.cpp | 9 +- src/modules/finished/FinishedPage.h | 5 +- src/modules/finished/FinishedViewStep.cpp | 7 +- src/modules/finished/FinishedViewStep.h | 5 +- src/modules/fsresizer/ResizeFSJob.cpp | 88 +- src/modules/fsresizer/ResizeFSJob.h | 28 +- src/modules/fsresizer/Tests.cpp | 25 +- src/modules/fsresizer/Tests.h | 3 +- src/modules/hostinfo/HostInfoJob.cpp | 7 +- src/modules/hostinfo/HostInfoJob.h | 3 +- src/modules/hostinfo/Tests.cpp | 9 +- src/modules/initcpio/InitcpioJob.cpp | 10 +- src/modules/initcpio/InitcpioJob.h | 3 +- src/modules/initcpio/Tests.cpp | 17 +- src/modules/initcpio/Tests.h | 3 +- src/modules/initramfs/InitramfsJob.cpp | 10 +- src/modules/initramfs/InitramfsJob.h | 3 +- src/modules/initramfs/Tests.cpp | 24 +- src/modules/initramfs/Tests.h | 3 +- src/modules/initramfscfg/encrypt_hook | 3 + src/modules/initramfscfg/encrypt_hook_nokey | 3 + .../InteractiveTerminalPage.cpp | 34 +- .../InteractiveTerminalPage.h | 5 +- .../InteractiveTerminalViewStep.cpp | 14 +- .../InteractiveTerminalViewStep.h | 7 +- src/modules/keyboard/Config.cpp | 5 +- src/modules/keyboard/Config.h | 5 +- src/modules/keyboard/KeyboardLayoutModel.cpp | 5 +- src/modules/keyboard/KeyboardLayoutModel.h | 3 +- src/modules/keyboard/KeyboardPage.cpp | 6 +- src/modules/keyboard/KeyboardPage.h | 6 +- src/modules/keyboard/KeyboardViewStep.cpp | 3 +- src/modules/keyboard/KeyboardViewStep.h | 5 +- src/modules/keyboard/README.md | 5 - src/modules/keyboard/SetKeyboardLayoutJob.cpp | 7 +- src/modules/keyboard/SetKeyboardLayoutJob.h | 5 +- .../keyboard/images/restore.png.license | 2 + src/modules/keyboard/kbd-model-map | 4 + .../keyboardwidget/keyboardglobal.cpp | 32 +- .../keyboard/keyboardwidget/keyboardglobal.h | 23 +- .../keyboardwidget/keyboardpreview.cpp | 380 ++++--- .../keyboard/keyboardwidget/keyboardpreview.h | 58 +- src/modules/keyboardq/KeyboardQmlViewStep.cpp | 5 +- src/modules/keyboardq/KeyboardQmlViewStep.h | 5 +- src/modules/license/LicensePage.cpp | 9 +- src/modules/license/LicensePage.h | 9 +- src/modules/license/LicenseViewStep.cpp | 5 +- src/modules/license/LicenseViewStep.h | 5 +- src/modules/license/LicenseWidget.cpp | 9 +- src/modules/license/LicenseWidget.h | 9 +- src/modules/license/README.md | 24 +- src/modules/locale/Config.cpp | 1 - src/modules/locale/Config.h | 1 - src/modules/locale/LCLocaleDialog.cpp | 5 +- src/modules/locale/LCLocaleDialog.h | 3 +- src/modules/locale/LocaleConfiguration.cpp | 5 +- src/modules/locale/LocaleConfiguration.h | 5 +- src/modules/locale/LocalePage.h | 5 +- src/modules/locale/LocaleViewStep.cpp | 5 +- src/modules/locale/LocaleViewStep.h | 5 +- src/modules/locale/SetTimezoneJob.cpp | 5 +- src/modules/locale/SetTimezoneJob.h | 3 +- src/modules/locale/images/bg.png.license | 2 + src/modules/locale/images/pin.png.license | 2 + .../locale/timezonewidget/TimeZoneImage.cpp | 3 +- .../locale/timezonewidget/TimeZoneImage.h | 3 +- .../locale/timezonewidget/timezonewidget.cpp | 6 +- .../locale/timezonewidget/timezonewidget.h | 6 +- src/modules/localeq/LocaleQmlViewStep.cpp | 5 +- src/modules/localeq/LocaleQmlViewStep.h | 3 +- src/modules/localeq/Map.qml | 3 +- src/modules/localeq/Offline.qml | 3 +- src/modules/localeq/i18n.qml | 3 +- .../img/chevron-left-solid.svg.license | 2 + src/modules/localeq/img/locale.svg.license | 2 + src/modules/localeq/img/minus.png.license | 2 + src/modules/localeq/img/pin.svg.license | 2 + src/modules/localeq/img/plus.png.license | 2 + src/modules/localeq/img/worldmap.png.license | 2 + src/modules/localeq/localeq.qml | 5 +- .../luksbootkeyfile/LuksBootKeyFileJob.cpp | 15 +- .../luksbootkeyfile/LuksBootKeyFileJob.h | 15 +- src/modules/machineid/MachineIdJob.cpp | 9 +- src/modules/machineid/MachineIdJob.h | 3 +- src/modules/machineid/Tests.cpp | 7 +- src/modules/machineid/Workers.cpp | 9 +- src/modules/machineid/Workers.h | 3 +- src/modules/netinstall/Config.cpp | 11 +- src/modules/netinstall/Config.h | 9 +- src/modules/netinstall/NetInstallPage.cpp | 11 +- src/modules/netinstall/NetInstallPage.h | 9 +- src/modules/netinstall/NetInstallViewStep.cpp | 9 +- src/modules/netinstall/NetInstallViewStep.h | 7 +- src/modules/netinstall/PackageModel.cpp | 5 +- src/modules/netinstall/PackageModel.h | 5 +- src/modules/netinstall/PackageTreeItem.cpp | 5 +- src/modules/netinstall/PackageTreeItem.h | 5 +- src/modules/netinstall/README.md | 6 - src/modules/netinstall/Tests.cpp | 3 +- src/modules/netinstall/netinstall.yaml | 3 + src/modules/notesqml/NotesQmlViewStep.cpp | 19 +- src/modules/notesqml/NotesQmlViewStep.h | 21 +- .../notesqml/examples/notesqml.qml.example | 100 +- src/modules/notesqml/notesqml.qml | 13 +- src/modules/oemid/IDJob.cpp | 44 +- src/modules/oemid/IDJob.h | 5 +- src/modules/oemid/OEMViewStep.cpp | 69 +- src/modules/oemid/OEMViewStep.h | 3 +- src/modules/packagechooser/ItemAppData.cpp | 3 +- src/modules/packagechooser/ItemAppData.h | 3 +- src/modules/packagechooser/ItemAppStream.cpp | 3 +- src/modules/packagechooser/ItemAppStream.h | 3 +- .../packagechooser/PackageChooserPage.cpp | 3 +- .../packagechooser/PackageChooserPage.h | 3 +- .../packagechooser/PackageChooserViewStep.cpp | 3 +- .../packagechooser/PackageChooserViewStep.h | 3 +- src/modules/packagechooser/PackageModel.cpp | 3 +- src/modules/packagechooser/PackageModel.h | 3 +- src/modules/packagechooser/Tests.cpp | 9 +- src/modules/packagechooser/Tests.h | 3 +- .../images/calamares.png.license | 2 + .../images/no-selection.png.license | 2 + src/modules/partition/README.md | 6 + .../partition/core/BootLoaderModel.cpp | 7 +- src/modules/partition/core/BootLoaderModel.h | 7 +- src/modules/partition/core/ColorUtils.cpp | 5 +- src/modules/partition/core/ColorUtils.h | 5 +- src/modules/partition/core/Config.cpp | 3 +- src/modules/partition/core/DeviceList.cpp | 5 +- src/modules/partition/core/DeviceList.h | 5 +- src/modules/partition/core/DeviceModel.cpp | 7 +- src/modules/partition/core/DeviceModel.h | 5 +- src/modules/partition/core/KPMHelpers.cpp | 5 +- src/modules/partition/core/KPMHelpers.h | 7 +- src/modules/partition/core/OsproberEntry.h | 5 +- src/modules/partition/core/PartUtils.cpp | 9 +- src/modules/partition/core/PartUtils.h | 7 +- .../partition/core/PartitionActions.cpp | 7 +- src/modules/partition/core/PartitionActions.h | 3 +- .../partition/core/PartitionCoreModule.cpp | 11 +- .../partition/core/PartitionCoreModule.h | 7 +- src/modules/partition/core/PartitionInfo.cpp | 5 +- src/modules/partition/core/PartitionInfo.h | 5 +- .../partition/core/PartitionLayout.cpp | 7 +- src/modules/partition/core/PartitionLayout.h | 5 +- src/modules/partition/core/PartitionModel.cpp | 5 +- src/modules/partition/core/PartitionModel.h | 5 +- src/modules/partition/gui/BootInfoWidget.cpp | 19 +- src/modules/partition/gui/BootInfoWidget.h | 5 +- src/modules/partition/gui/ChoicePage.cpp | 936 +++++++++--------- src/modules/partition/gui/ChoicePage.h | 7 +- .../partition/gui/CreatePartitionDialog.cpp | 128 +-- .../partition/gui/CreatePartitionDialog.h | 13 +- .../partition/gui/CreateVolumeGroupDialog.cpp | 3 +- .../partition/gui/CreateVolumeGroupDialog.h | 5 +- .../partition/gui/DeviceInfoWidget.cpp | 35 +- src/modules/partition/gui/DeviceInfoWidget.h | 5 +- .../gui/EditExistingPartitionDialog.cpp | 126 +-- .../gui/EditExistingPartitionDialog.h | 10 +- src/modules/partition/gui/EncryptWidget.cpp | 5 +- src/modules/partition/gui/EncryptWidget.h | 7 +- .../gui/ListPhysicalVolumeWidgetItem.cpp | 10 +- .../gui/ListPhysicalVolumeWidgetItem.h | 5 +- .../partition/gui/PartitionBarsView.cpp | 195 ++-- src/modules/partition/gui/PartitionBarsView.h | 7 +- .../partition/gui/PartitionDialogHelpers.cpp | 34 +- .../partition/gui/PartitionDialogHelpers.h | 19 +- .../partition/gui/PartitionLabelsView.cpp | 160 +-- .../partition/gui/PartitionLabelsView.h | 12 +- src/modules/partition/gui/PartitionPage.cpp | 226 +++-- src/modules/partition/gui/PartitionPage.h | 17 +- .../partition/gui/PartitionSizeController.cpp | 31 +- .../partition/gui/PartitionSizeController.h | 5 +- .../partition/gui/PartitionSplitterWidget.cpp | 3 +- .../partition/gui/PartitionSplitterWidget.h | 25 +- .../gui/PartitionViewSelectionFilter.h | 5 +- .../partition/gui/PartitionViewStep.cpp | 50 +- src/modules/partition/gui/PartitionViewStep.h | 20 +- src/modules/partition/gui/ReplaceWidget.cpp | 146 ++- src/modules/partition/gui/ReplaceWidget.h | 15 +- .../partition/gui/ResizeVolumeGroupDialog.cpp | 16 +- .../partition/gui/ResizeVolumeGroupDialog.h | 9 +- src/modules/partition/gui/ScanningDialog.cpp | 36 +- src/modules/partition/gui/ScanningDialog.h | 27 +- .../partition/gui/VolumeGroupBaseDialog.cpp | 80 +- .../partition/gui/VolumeGroupBaseDialog.h | 12 +- src/modules/partition/jobs/ClearMountsJob.cpp | 7 +- src/modules/partition/jobs/ClearMountsJob.h | 3 +- .../partition/jobs/ClearTempMountsJob.cpp | 3 +- .../partition/jobs/ClearTempMountsJob.h | 3 +- .../partition/jobs/CreatePartitionJob.cpp | 7 +- .../partition/jobs/CreatePartitionJob.h | 5 +- .../jobs/CreatePartitionTableJob.cpp | 7 +- .../partition/jobs/CreatePartitionTableJob.h | 5 +- .../partition/jobs/CreateVolumeGroupJob.cpp | 3 +- .../partition/jobs/CreateVolumeGroupJob.h | 3 +- .../jobs/DeactivateVolumeGroupJob.cpp | 3 +- .../partition/jobs/DeactivateVolumeGroupJob.h | 3 +- .../partition/jobs/DeletePartitionJob.cpp | 7 +- .../partition/jobs/DeletePartitionJob.h | 5 +- .../partition/jobs/FillGlobalStorageJob.cpp | 7 +- .../partition/jobs/FillGlobalStorageJob.h | 5 +- .../partition/jobs/FormatPartitionJob.cpp | 7 +- .../partition/jobs/FormatPartitionJob.h | 5 +- src/modules/partition/jobs/PartitionJob.cpp | 3 +- src/modules/partition/jobs/PartitionJob.h | 5 +- .../partition/jobs/RemoveVolumeGroupJob.cpp | 3 +- .../partition/jobs/RemoveVolumeGroupJob.h | 3 +- .../partition/jobs/ResizePartitionJob.cpp | 7 +- .../partition/jobs/ResizePartitionJob.h | 5 +- .../partition/jobs/ResizeVolumeGroupJob.cpp | 3 +- .../partition/jobs/ResizeVolumeGroupJob.h | 3 +- .../partition/jobs/SetPartitionFlagsJob.cpp | 9 +- .../partition/jobs/SetPartitionFlagsJob.h | 5 +- .../partition/tests/ClearMountsJobTests.cpp | 3 +- .../partition/tests/ClearMountsJobTests.h | 3 +- .../partition/tests/PartitionJobTests.cpp | 5 +- .../partition/tests/PartitionJobTests.h | 3 +- src/modules/plasmalnf/PlasmaLnfJob.cpp | 32 +- src/modules/plasmalnf/PlasmaLnfJob.h | 5 +- src/modules/plasmalnf/PlasmaLnfPage.cpp | 57 +- src/modules/plasmalnf/PlasmaLnfPage.h | 7 +- src/modules/plasmalnf/PlasmaLnfViewStep.cpp | 37 +- src/modules/plasmalnf/PlasmaLnfViewStep.h | 9 +- src/modules/plasmalnf/ThemeInfo.h | 22 +- src/modules/plasmalnf/ThemeWidget.cpp | 28 +- src/modules/plasmalnf/ThemeWidget.h | 6 +- .../plasmalnf/view-preview.png.license | 2 + .../plasmalnf/view-preview.svg.license | 2 + src/modules/removeuser/RemoveUserJob.cpp | 7 +- src/modules/removeuser/RemoveUserJob.h | 3 +- src/modules/shellprocess/ShellProcessJob.cpp | 3 +- src/modules/shellprocess/ShellProcessJob.h | 3 +- src/modules/shellprocess/Tests.cpp | 3 +- src/modules/shellprocess/Tests.h | 3 +- src/modules/summary/SummaryPage.cpp | 37 +- src/modules/summary/SummaryPage.h | 5 +- src/modules/summary/SummaryViewStep.cpp | 8 +- src/modules/summary/SummaryViewStep.h | 5 +- src/modules/tracking/Config.cpp | 3 +- src/modules/tracking/Config.h | 3 +- src/modules/tracking/Tests.cpp | 1 - src/modules/tracking/TrackingJobs.cpp | 3 +- src/modules/tracking/TrackingJobs.h | 3 +- src/modules/tracking/TrackingPage.cpp | 3 +- src/modules/tracking/TrackingPage.h | 3 +- src/modules/tracking/TrackingType.h | 3 +- src/modules/tracking/TrackingViewStep.cpp | 3 +- src/modules/tracking/TrackingViewStep.h | 3 +- .../tracking/level-install.svg.license | 2 + .../tracking/level-machine.svg.license | 2 + src/modules/tracking/level-none.svg.license | 2 + src/modules/tracking/level-user.svg.license | 2 + src/modules/users/CheckPWQuality.h | 3 +- src/modules/users/Config.cpp | 1 - src/modules/users/Config.h | 1 - src/modules/users/CreateUserJob.cpp | 1 - src/modules/users/CreateUserJob.h | 3 +- src/modules/users/SetHostNameJob.cpp | 7 +- src/modules/users/SetHostNameJob.h | 7 +- src/modules/users/SetPasswordJob.cpp | 5 +- src/modules/users/SetPasswordJob.h | 5 +- src/modules/users/UsersPage.cpp | 9 +- src/modules/users/UsersPage.h | 6 +- src/modules/users/UsersViewStep.cpp | 7 +- src/modules/users/UsersViewStep.h | 5 +- src/modules/users/images/invalid.png.license | 2 + src/modules/users/images/valid.png.license | 2 + src/modules/usersq/UsersQmlViewStep.cpp | 9 +- src/modules/usersq/UsersQmlViewStep.h | 7 +- src/modules/webview/WebViewConfig.h.in | 3 + src/modules/webview/WebViewStep.cpp | 41 +- src/modules/webview/WebViewStep.h | 16 +- src/modules/welcome/Config.cpp | 3 +- src/modules/welcome/Config.h | 3 +- src/modules/welcome/WelcomePage.cpp | 7 +- src/modules/welcome/WelcomePage.h | 5 +- src/modules/welcome/WelcomeViewStep.cpp | 5 +- src/modules/welcome/WelcomeViewStep.h | 3 +- .../welcome/checker/CheckerContainer.cpp | 7 +- .../welcome/checker/CheckerContainer.h | 7 +- .../welcome/checker/GeneralRequirements.cpp | 9 +- .../welcome/checker/GeneralRequirements.h | 5 +- src/modules/welcome/checker/ResultWidget.cpp | 5 +- src/modules/welcome/checker/ResultWidget.h | 5 +- .../welcome/checker/ResultsListWidget.cpp | 5 +- .../welcome/checker/ResultsListWidget.h | 5 +- src/modules/welcome/checker/partman_devices.c | 3 +- src/modules/welcome/checker/partman_devices.h | 3 +- .../welcome/language-icon-128px.png.license | 2 + .../welcome/language-icon-48px.png.license | 2 + src/modules/welcomeq/Recommended.qml | 5 +- src/modules/welcomeq/Requirements.qml | 5 +- src/modules/welcomeq/WelcomeQmlViewStep.cpp | 5 +- src/modules/welcomeq/WelcomeQmlViewStep.h | 3 +- src/modules/welcomeq/about.qml | 25 +- .../img/chevron-left-solid.svg.license | 2 + .../img/language-icon-48px.png.license | 2 + src/modules/welcomeq/img/squid.png.license | 2 + src/modules/welcomeq/release_notes.qml | 7 +- src/modules/welcomeq/welcomeq.qml | 5 +- 311 files changed, 2745 insertions(+), 2197 deletions(-) delete mode 100644 src/modules/keyboard/README.md create mode 100644 src/modules/keyboard/images/restore.png.license create mode 100644 src/modules/locale/images/bg.png.license create mode 100644 src/modules/locale/images/pin.png.license create mode 100644 src/modules/localeq/img/chevron-left-solid.svg.license create mode 100644 src/modules/localeq/img/locale.svg.license create mode 100644 src/modules/localeq/img/minus.png.license create mode 100644 src/modules/localeq/img/pin.svg.license create mode 100644 src/modules/localeq/img/plus.png.license create mode 100644 src/modules/localeq/img/worldmap.png.license delete mode 100644 src/modules/netinstall/README.md create mode 100644 src/modules/packagechooser/images/calamares.png.license create mode 100644 src/modules/packagechooser/images/no-selection.png.license create mode 100644 src/modules/plasmalnf/view-preview.png.license create mode 100644 src/modules/plasmalnf/view-preview.svg.license create mode 100644 src/modules/tracking/level-install.svg.license create mode 100644 src/modules/tracking/level-machine.svg.license create mode 100644 src/modules/tracking/level-none.svg.license create mode 100644 src/modules/tracking/level-user.svg.license create mode 100644 src/modules/users/images/invalid.png.license create mode 100644 src/modules/users/images/valid.png.license create mode 100644 src/modules/welcome/language-icon-128px.png.license create mode 100644 src/modules/welcome/language-icon-48px.png.license create mode 100644 src/modules/welcomeq/img/chevron-left-solid.svg.license create mode 100644 src/modules/welcomeq/img/language-icon-48px.png.license create mode 100644 src/modules/welcomeq/img/squid.png.license diff --git a/src/modules/README.md b/src/modules/README.md index bf74506ee..89085e54e 100644 --- a/src/modules/README.md +++ b/src/modules/README.md @@ -1,5 +1,10 @@ # Calamares modules + + Calamares modules are plugins that provide features like installer pages, batch jobs, etc. An installer page (visible to the user) is called a "view", while other modules are "jobs". diff --git a/src/modules/contextualprocess/Binding.h b/src/modules/contextualprocess/Binding.h index 25b5c7547..5b6f09087 100644 --- a/src/modules/contextualprocess/Binding.h +++ b/src/modules/contextualprocess/Binding.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/contextualprocess/ContextualProcessJob.cpp b/src/modules/contextualprocess/ContextualProcessJob.cpp index 1173a3071..f970740ca 100644 --- a/src/modules/contextualprocess/ContextualProcessJob.cpp +++ b/src/modules/contextualprocess/ContextualProcessJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -77,7 +78,7 @@ fetch( QString& value, QStringList& selector, int index, const QVariant& v ) } const QVariantMap map = v.toMap(); const QString& key = selector.at( index ); - if ( index == selector.length() - 1) + if ( index == selector.length() - 1 ) { value = map.value( key ).toString(); return map.contains( key ); diff --git a/src/modules/contextualprocess/ContextualProcessJob.h b/src/modules/contextualprocess/ContextualProcessJob.h index 5ab4b935e..e926f699d 100644 --- a/src/modules/contextualprocess/ContextualProcessJob.h +++ b/src/modules/contextualprocess/ContextualProcessJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/contextualprocess/Tests.cpp b/src/modules/contextualprocess/Tests.cpp index 50ce9f400..97277dfce 100644 --- a/src/modules/contextualprocess/Tests.cpp +++ b/src/modules/contextualprocess/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/contextualprocess/Tests.h b/src/modules/contextualprocess/Tests.h index fd705a103..5b27d497d 100644 --- a/src/modules/contextualprocess/Tests.h +++ b/src/modules/contextualprocess/Tests.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp b/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp index e151acc0c..18bbcae88 100644 --- a/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp +++ b/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Kevin Kofler + * SPDX-FileCopyrightText: 2016 Kevin Kofler + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/dracutlukscfg/DracutLuksCfgJob.h b/src/modules/dracutlukscfg/DracutLuksCfgJob.h index 52b290d1c..b10a8647e 100644 --- a/src/modules/dracutlukscfg/DracutLuksCfgJob.h +++ b/src/modules/dracutlukscfg/DracutLuksCfgJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Kevin Kofler - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Kevin Kofler + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/dummycpp/DummyCppJob.cpp b/src/modules/dummycpp/DummyCppJob.cpp index 5a2ca1803..b9765ac01 100644 --- a/src/modules/dummycpp/DummyCppJob.cpp +++ b/src/modules/dummycpp/DummyCppJob.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac (original dummypython code) - * Copyright 2016, Kevin Kofler - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac (original dummypython code) + * SPDX-FileCopyrightText: 2016 Kevin Kofler + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/dummycpp/DummyCppJob.h b/src/modules/dummycpp/DummyCppJob.h index bf8625950..1b6f0eeb5 100644 --- a/src/modules/dummycpp/DummyCppJob.h +++ b/src/modules/dummycpp/DummyCppJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Kevin Kofler - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Kevin Kofler + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/finished/FinishedPage.cpp b/src/modules/finished/FinishedPage.cpp index e2ad4a24f..bdcbb9a85 100644 --- a/src/modules/finished/FinishedPage.cpp +++ b/src/modules/finished/FinishedPage.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -100,7 +101,7 @@ FinishedPage::setUpRestart() cDebug() << "FinishedPage::setUpRestart(), Quit button" << "setup=" << FinishedViewStep::modeName( m_mode ) << "command=" << m_restartNowCommand; - connect( qApp, &QApplication::aboutToQuit, [ this ]() { + connect( qApp, &QApplication::aboutToQuit, [this]() { if ( ui->restartCheckBox->isVisible() && ui->restartCheckBox->isChecked() ) { cDebug() << "Running restart command" << m_restartNowCommand; diff --git a/src/modules/finished/FinishedPage.h b/src/modules/finished/FinishedPage.h index 40f437e07..90ce9383a 100644 --- a/src/modules/finished/FinishedPage.h +++ b/src/modules/finished/FinishedPage.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/finished/FinishedViewStep.cpp b/src/modules/finished/FinishedViewStep.cpp index 7e4cf1c6b..0ea2bbe4c 100644 --- a/src/modules/finished/FinishedViewStep.cpp +++ b/src/modules/finished/FinishedViewStep.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, 2019, Adriaan de Groot - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/finished/FinishedViewStep.h b/src/modules/finished/FinishedViewStep.h index 8f57d0210..f19304935 100644 --- a/src/modules/finished/FinishedViewStep.h +++ b/src/modules/finished/FinishedViewStep.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/fsresizer/ResizeFSJob.cpp b/src/modules/fsresizer/ResizeFSJob.cpp index 217f1315e..d7003c76d 100644 --- a/src/modules/fsresizer/ResizeFSJob.cpp +++ b/src/modules/fsresizer/ResizeFSJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,8 +27,8 @@ #include "utils/Units.h" #include "utils/Variant.h" -#include #include +#include #include #include @@ -46,9 +47,7 @@ ResizeFSJob::ResizeFSJob( QObject* parent ) } -ResizeFSJob::~ResizeFSJob() -{ -} +ResizeFSJob::~ResizeFSJob() {} QString @@ -62,7 +61,8 @@ ResizeFSJob::findPartition() { using DeviceList = QList< Device* >; #if defined( WITH_KPMCORE4API ) - DeviceList devices = m_kpmcore.backend()->scanDevices( /* not includeReadOnly, not includeLoopback */ ScanFlag(0) ); + DeviceList devices + = m_kpmcore.backend()->scanDevices( /* not includeReadOnly, not includeLoopback */ ScanFlag( 0 ) ); #else DeviceList devices = m_kpmcore.backend()->scanDevices( /* excludeReadOnly */ true ); #endif @@ -70,14 +70,17 @@ ResizeFSJob::findPartition() cDebug() << "ResizeFSJob found" << devices.count() << "devices."; for ( DeviceList::iterator dev_it = devices.begin(); dev_it != devices.end(); ++dev_it ) { - if ( ! ( *dev_it ) ) - continue; - cDebug() << "ResizeFSJob found" << ( *dev_it )->deviceNode(); - for ( auto part_it = PartitionIterator::begin( *dev_it ); part_it != PartitionIterator::end( *dev_it ); ++part_it ) + if ( !( *dev_it ) ) { - cDebug() << Logger::SubEntry << ( *part_it )->mountPoint() << "on" << ( *part_it )->deviceNode(); - if ( ( !m_fsname.isEmpty() && ( *part_it )->mountPoint() == m_fsname ) || - ( !m_devicename.isEmpty() && ( *part_it )->deviceNode() == m_devicename ) ) + continue; + } + cDebug() << "ResizeFSJob found" << ( *dev_it )->deviceNode(); + for ( auto part_it = PartitionIterator::begin( *dev_it ); part_it != PartitionIterator::end( *dev_it ); + ++part_it ) + { + cDebug() << Logger::SubEntry << ( *part_it )->mountPoint() << "on" << ( *part_it )->deviceNode(); + if ( ( !m_fsname.isEmpty() && ( *part_it )->mountPoint() == m_fsname ) + || ( !m_devicename.isEmpty() && ( *part_it )->deviceNode() == m_devicename ) ) { cDebug() << Logger::SubEntry << "matched configuration dev=" << m_devicename << "fs=" << m_fsname; return PartitionMatch( *dev_it, *part_it ); @@ -101,11 +104,17 @@ qint64 ResizeFSJob::findGrownEnd( ResizeFSJob::PartitionMatch m ) { if ( !m.first || !m.second ) + { return -1; // Missing device data + } if ( !ResizeOperation::canGrow( m.second ) ) + { return -1; // Operation is doomed + } if ( !m_size.isValid() ) + { return -1; // Must have a grow-size + } cDebug() << "Containing device size" << m.first->totalLogical(); qint64 last_available = m.first->totalLogical() - 1; // Numbered from 0 @@ -170,12 +179,11 @@ ResizeFSJob::exec() tr( "Invalid configuration" ), tr( "The file-system resize job has an invalid configuration and will not run." ) ); - if ( !m_kpmcore) + if ( !m_kpmcore ) { cWarning() << "Could not load KPMCore backend (2)."; - return Calamares::JobResult::error( - tr( "KPMCore not Available" ), - tr( "Calamares cannot start KPMCore for the file-system resize job." ) ); + return Calamares::JobResult::error( tr( "KPMCore not Available" ), + tr( "Calamares cannot start KPMCore for the file-system resize job." ) ); } m_kpmcore.backend()->initFSSupport(); // Might not be enough, see below @@ -184,34 +192,32 @@ ResizeFSJob::exec() if ( !m.first || !m.second ) return Calamares::JobResult::error( tr( "Resize Failed" ), - !m_fsname.isEmpty() ? tr( "The filesystem %1 could not be found in this system, and cannot be resized." ).arg( m_fsname ) - : tr( "The device %1 could not be found in this system, and cannot be resized." ).arg( m_devicename ) ); + !m_fsname.isEmpty() + ? tr( "The filesystem %1 could not be found in this system, and cannot be resized." ).arg( m_fsname ) + : tr( "The device %1 could not be found in this system, and cannot be resized." ).arg( m_devicename ) ); m.second->fileSystem().init(); // Initialize support for specific FS if ( !ResizeOperation::canGrow( m.second ) ) { cDebug() << "canGrow() returned false."; - return Calamares::JobResult::error( - tr( "Resize Failed" ), - !m_fsname.isEmpty() ? tr( "The filesystem %1 cannot be resized." ).arg( m_fsname ) - : tr( "The device %1 cannot be resized." ).arg( m_devicename ) ); + return Calamares::JobResult::error( tr( "Resize Failed" ), + !m_fsname.isEmpty() + ? tr( "The filesystem %1 cannot be resized." ).arg( m_fsname ) + : tr( "The device %1 cannot be resized." ).arg( m_devicename ) ); } qint64 new_end = findGrownEnd( m ); - cDebug() << "Resize from" - << m.second->firstSector() << '-' << m.second->lastSector() - << '(' << m.second->length() << ')' - << "to -" << new_end; + cDebug() << "Resize from" << m.second->firstSector() << '-' << m.second->lastSector() << '(' << m.second->length() + << ')' << "to -" << new_end; if ( new_end < 0 ) - return Calamares::JobResult::error( - tr( "Resize Failed" ), - !m_fsname.isEmpty() ? tr( "The filesystem %1 cannot be resized." ).arg( m_fsname ) - : tr( "The device %1 cannot be resized." ).arg( m_devicename ) ); + return Calamares::JobResult::error( tr( "Resize Failed" ), + !m_fsname.isEmpty() + ? tr( "The filesystem %1 cannot be resized." ).arg( m_fsname ) + : tr( "The device %1 cannot be resized." ).arg( m_devicename ) ); if ( new_end == 0 ) { - cWarning() << "Resize operation on" << m_fsname << m_devicename - << "skipped as not-useful."; + cWarning() << "Resize operation on" << m_fsname << m_devicename << "skipped as not-useful."; if ( m_required ) return Calamares::JobResult::error( tr( "Resize Failed" ), @@ -226,13 +232,13 @@ ResizeFSJob::exec() ResizeOperation op( *m.first, *m.second, m.second->firstSector(), new_end ); Report op_report( nullptr ); if ( op.execute( op_report ) ) + { cDebug() << "Resize operation OK."; + } else { cDebug() << "Resize failed." << op_report.output(); - return Calamares::JobResult::error( - tr( "Resize Failed" ), - op_report.toText() ); + return Calamares::JobResult::error( tr( "Resize Failed" ), op_report.toText() ); } } @@ -243,8 +249,8 @@ ResizeFSJob::exec() void ResizeFSJob::setConfigurationMap( const QVariantMap& configurationMap ) { - m_fsname = configurationMap["fs"].toString(); - m_devicename = configurationMap["dev"].toString(); + m_fsname = configurationMap[ "fs" ].toString(); + m_devicename = configurationMap[ "dev" ].toString(); if ( m_fsname.isEmpty() && m_devicename.isEmpty() ) { @@ -252,10 +258,10 @@ ResizeFSJob::setConfigurationMap( const QVariantMap& configurationMap ) return; } - m_size = PartitionSize( configurationMap["size"].toString() ); - m_atleast = PartitionSize( configurationMap["atleast"].toString() ); + m_size = PartitionSize( configurationMap[ "size" ].toString() ); + m_atleast = PartitionSize( configurationMap[ "atleast" ].toString() ); m_required = CalamaresUtils::getBool( configurationMap, "required", false ); } -CALAMARES_PLUGIN_FACTORY_DEFINITION( ResizeFSJobFactory, registerPlugin(); ) +CALAMARES_PLUGIN_FACTORY_DEFINITION( ResizeFSJobFactory, registerPlugin< ResizeFSJob >(); ) diff --git a/src/modules/fsresizer/ResizeFSJob.h b/src/modules/fsresizer/ResizeFSJob.h index f7ff676cd..5bc810370 100644 --- a/src/modules/fsresizer/ResizeFSJob.h +++ b/src/modules/fsresizer/ResizeFSJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -51,26 +52,13 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ) override; /** @brief Is the configuration of this job valid? */ - bool isValid() const - { - return ( !m_fsname.isEmpty() || !m_devicename.isEmpty() ) && - m_size.isValid(); - } + bool isValid() const { return ( !m_fsname.isEmpty() || !m_devicename.isEmpty() ) && m_size.isValid(); } - QString name() const - { - return m_fsname.isEmpty() ? m_devicename : m_fsname; - } + QString name() const { return m_fsname.isEmpty() ? m_devicename : m_fsname; } - PartitionSize size() const - { - return m_size; - } + PartitionSize size() const { return m_size; } - PartitionSize minimumSize() const - { - return m_atleast; - } + PartitionSize minimumSize() const { return m_atleast; } private: CalamaresUtils::Partition::KPMManager m_kpmcore; @@ -80,7 +68,7 @@ private: QString m_devicename; bool m_required; - using PartitionMatch = QPair; + using PartitionMatch = QPair< Device*, Partition* >; /** @brief Find the configured FS */ PartitionMatch findPartition(); @@ -90,4 +78,4 @@ private: CALAMARES_PLUGIN_FACTORY_DECLARATION( ResizeFSJobFactory ) -#endif // RESIZEFSJOB_H +#endif // RESIZEFSJOB_H diff --git a/src/modules/fsresizer/Tests.cpp b/src/modules/fsresizer/Tests.cpp index 42d587631..a7be5dab8 100644 --- a/src/modules/fsresizer/Tests.cpp +++ b/src/modules/fsresizer/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,20 +37,17 @@ using SizeUnit = CalamaresUtils::Partition::SizeUnit; QTEST_GUILESS_MAIN( FSResizerTests ) -FSResizerTests::FSResizerTests() -{ -} +FSResizerTests::FSResizerTests() {} -FSResizerTests::~FSResizerTests() -{ -} +FSResizerTests::~FSResizerTests() {} void FSResizerTests::initTestCase() { } -void FSResizerTests::testConfigurationRobust() +void +FSResizerTests::testConfigurationRobust() { ResizeFSJob j; @@ -72,7 +70,8 @@ atleast: 600MiB QCOMPARE( j.minimumSize().value(), 0 ); } -void FSResizerTests::testConfigurationValues() +void +FSResizerTests::testConfigurationValues() { ResizeFSJob j; @@ -84,7 +83,7 @@ atleast: 600MiB )" ); j.setConfigurationMap( CalamaresUtils::yamlMapToVariant( doc0 ) ); QVERIFY( !j.name().isEmpty() ); - QCOMPARE( j.name(), QString("/") ); + QCOMPARE( j.name(), QString( "/" ) ); QCOMPARE( j.size().unit(), SizeUnit::Percent ); QCOMPARE( j.minimumSize().unit(), SizeUnit::MiB ); QCOMPARE( j.size().value(), 100 ); @@ -99,7 +98,7 @@ atleast: 127 % )" ); j.setConfigurationMap( CalamaresUtils::yamlMapToVariant( doc0 ) ); QVERIFY( !j.name().isEmpty() ); - QCOMPARE( j.name(), QString("/") ); + QCOMPARE( j.name(), QString( "/" ) ); QCOMPARE( j.size().unit(), SizeUnit::MiB ); QCOMPARE( j.minimumSize().unit(), SizeUnit::None ); QCOMPARE( j.size().value(), 72 ); @@ -113,7 +112,7 @@ atleast: 127 % )" ); j.setConfigurationMap( CalamaresUtils::yamlMapToVariant( doc0 ) ); QVERIFY( !j.name().isEmpty() ); - QCOMPARE( j.name(), QString("/dev/m00") ); + QCOMPARE( j.name(), QString( "/dev/m00" ) ); QCOMPARE( j.size().unit(), SizeUnit::MiB ); QCOMPARE( j.minimumSize().unit(), SizeUnit::None ); QCOMPARE( j.size().value(), 72 ); @@ -128,7 +127,7 @@ size: 71MiB )" ); j.setConfigurationMap( CalamaresUtils::yamlMapToVariant( doc0 ) ); QVERIFY( !j.name().isEmpty() ); - QCOMPARE( j.name(), QString("/") ); + QCOMPARE( j.name(), QString( "/" ) ); QCOMPARE( j.size().unit(), SizeUnit::MiB ); QCOMPARE( j.minimumSize().unit(), SizeUnit::None ); QCOMPARE( j.size().value(), 71 ); diff --git a/src/modules/fsresizer/Tests.h b/src/modules/fsresizer/Tests.h index 958c0e655..24ac0bc8a 100644 --- a/src/modules/fsresizer/Tests.h +++ b/src/modules/fsresizer/Tests.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/hostinfo/HostInfoJob.cpp b/src/modules/hostinfo/HostInfoJob.cpp index 90c9cd515..02320c7ac 100644 --- a/src/modules/hostinfo/HostInfoJob.cpp +++ b/src/modules/hostinfo/HostInfoJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -123,7 +124,7 @@ hostCPUmatchARM( const QString& s ) * silicon. For instance, a list from lscpu-arm.c (Linux kernel) * shows this: * -static const struct hw_impl hw_implementer[] = { + static const struct hw_impl hw_implementer[] = { { 0x41, arm_part, "ARM" }, { 0x42, brcm_part, "Broadcom" }, { 0x43, cavium_part, "Cavium" }, @@ -137,7 +138,7 @@ static const struct hw_impl hw_implementer[] = { { 0x66, faraday_part, "Faraday" }, { 0x69, intel_part, "Intel" }, { -1, unknown_part, "unknown" }, -}; + }; * * Since the specific implementor isn't interesting, just * map everything to "ARM". diff --git a/src/modules/hostinfo/HostInfoJob.h b/src/modules/hostinfo/HostInfoJob.h index 5db169b0e..bf519e953 100644 --- a/src/modules/hostinfo/HostInfoJob.h +++ b/src/modules/hostinfo/HostInfoJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/hostinfo/Tests.cpp b/src/modules/hostinfo/Tests.cpp index 7ab797ed4..883bddf28 100644 --- a/src/modules/hostinfo/Tests.cpp +++ b/src/modules/hostinfo/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -63,8 +64,8 @@ HostInfoTests::testHostOS() // This is a lousy test, too: the implementation reads /proc/cpuinfo // and that's the only way we could use, too, to find what the "right" // answer is. - QStringList x86cpunames{ QStringLiteral( "Intel" ), QStringLiteral( "AMD" ) }; - QStringList armcpunames{ QStringLiteral( "ARM" ) }; + QStringList x86cpunames { QStringLiteral( "Intel" ), QStringLiteral( "AMD" ) }; + QStringList armcpunames { QStringLiteral( "ARM" ) }; const QString cpu = hostCPU(); QVERIFY( x86cpunames.contains( cpu ) || armcpunames.contains( cpu ) ); @@ -83,7 +84,7 @@ HostInfoTests::testHostOS() } else { - QCOMPARE( cpu, QString( "Unknown CPU modalias '%1'" ).arg(cpumodalias) ); + QCOMPARE( cpu, QString( "Unknown CPU modalias '%1'" ).arg( cpumodalias ) ); } } } diff --git a/src/modules/initcpio/InitcpioJob.cpp b/src/modules/initcpio/InitcpioJob.cpp index 38f3a8961..ae910995c 100644 --- a/src/modules/initcpio/InitcpioJob.cpp +++ b/src/modules/initcpio/InitcpioJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -88,8 +89,11 @@ InitcpioJob::setConfigurationMap( const QVariantMap& configurationMap ) } else if ( m_kernel == "$uname" ) { - auto r = CalamaresUtils::System::runCommand( - CalamaresUtils::System::RunLocation::RunInHost, { "/bin/uname", "-r" }, QString(), QString(), std::chrono::seconds( 3 ) ); + auto r = CalamaresUtils::System::runCommand( CalamaresUtils::System::RunLocation::RunInHost, + { "/bin/uname", "-r" }, + QString(), + QString(), + std::chrono::seconds( 3 ) ); if ( r.getExitCode() == 0 ) { m_kernel = r.getOutput(); diff --git a/src/modules/initcpio/InitcpioJob.h b/src/modules/initcpio/InitcpioJob.h index cdc48f6ce..ae8ff47c3 100644 --- a/src/modules/initcpio/InitcpioJob.h +++ b/src/modules/initcpio/InitcpioJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/initcpio/Tests.cpp b/src/modules/initcpio/Tests.cpp index e0590ba25..83b10388d 100644 --- a/src/modules/initcpio/Tests.cpp +++ b/src/modules/initcpio/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,23 +32,20 @@ #include extern void fixPermissions( const QDir& d ); - + QTEST_GUILESS_MAIN( InitcpioTests ) -InitcpioTests::InitcpioTests() -{ -} +InitcpioTests::InitcpioTests() {} -InitcpioTests::~InitcpioTests() -{ -} +InitcpioTests::~InitcpioTests() {} void InitcpioTests::initTestCase() { } -void InitcpioTests::testFixPermissions() +void +InitcpioTests::testFixPermissions() { Logger::setupLogLevel( Logger::LOGDEBUG ); cDebug() << "Fixing up /boot"; @@ -56,4 +54,3 @@ void InitcpioTests::testFixPermissions() fixPermissions( QDir( "/nonexistent/nonexistent" ) ); QVERIFY( true ); } - diff --git a/src/modules/initcpio/Tests.h b/src/modules/initcpio/Tests.h index 5bab26d3f..bebab408a 100644 --- a/src/modules/initcpio/Tests.h +++ b/src/modules/initcpio/Tests.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/initramfs/InitramfsJob.cpp b/src/modules/initramfs/InitramfsJob.cpp index 468047c45..05ee4bde8 100644 --- a/src/modules/initramfs/InitramfsJob.cpp +++ b/src/modules/initramfs/InitramfsJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -78,8 +79,11 @@ InitramfsJob::setConfigurationMap( const QVariantMap& configurationMap ) } else if ( m_kernel == "$uname" ) { - auto r = CalamaresUtils::System::runCommand( - CalamaresUtils::System::RunLocation::RunInHost, { "/bin/uname", "-r" }, QString(), QString(), std::chrono::seconds( 3 ) ); + auto r = CalamaresUtils::System::runCommand( CalamaresUtils::System::RunLocation::RunInHost, + { "/bin/uname", "-r" }, + QString(), + QString(), + std::chrono::seconds( 3 ) ); if ( r.getExitCode() == 0 ) { m_kernel = r.getOutput(); diff --git a/src/modules/initramfs/InitramfsJob.h b/src/modules/initramfs/InitramfsJob.h index 3239c6929..b1b3fb397 100644 --- a/src/modules/initramfs/InitramfsJob.h +++ b/src/modules/initramfs/InitramfsJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/initramfs/Tests.cpp b/src/modules/initramfs/Tests.cpp index 2a236e64b..955d9b8bf 100644 --- a/src/modules/initramfs/Tests.cpp +++ b/src/modules/initramfs/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,32 +34,30 @@ QTEST_GUILESS_MAIN( InitramfsTests ) -InitramfsTests::InitramfsTests() -{ -} +InitramfsTests::InitramfsTests() {} -InitramfsTests::~InitramfsTests() -{ -} +InitramfsTests::~InitramfsTests() {} void InitramfsTests::initTestCase() { Logger::setupLogLevel( Logger::LOGDEBUG ); - (void) new Calamares::JobQueue(); - (void) new CalamaresUtils::System( true ); + (void)new Calamares::JobQueue(); + (void)new CalamaresUtils::System( true ); } static const char contents[] = "UMASK=0077\n"; static const char confFile[] = "/tmp/calamares-safe-umask"; -void InitramfsTests::cleanup() +void +InitramfsTests::cleanup() { QFile::remove( confFile ); } -void InitramfsTests::testCreateTargetFile() +void +InitramfsTests::testCreateTargetFile() { static const char short_confFile[] = "/calamares-safe-umask"; @@ -79,8 +78,7 @@ void InitramfsTests::testCreateTargetFile() QFileInfo fi( path ); QVERIFY( fi.exists() ); - QCOMPARE( ulong( fi.size() ), sizeof( contents )-1 ); // don't count trailing NUL + QCOMPARE( ulong( fi.size() ), sizeof( contents ) - 1 ); // don't count trailing NUL QFile::remove( path ); - } diff --git a/src/modules/initramfs/Tests.h b/src/modules/initramfs/Tests.h index 715c90169..11d0fd1d0 100644 --- a/src/modules/initramfs/Tests.h +++ b/src/modules/initramfs/Tests.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/initramfscfg/encrypt_hook b/src/modules/initramfscfg/encrypt_hook index 257097303..70d661a98 100755 --- a/src/modules/initramfscfg/encrypt_hook +++ b/src/modules/initramfscfg/encrypt_hook @@ -1,4 +1,7 @@ #!/bin/sh +# +# SPDX-FileCopyrightText: 2016 David McKinney +# SPDX-License-Identifier: GPL-3.0-or-later PREREQ="" diff --git a/src/modules/initramfscfg/encrypt_hook_nokey b/src/modules/initramfscfg/encrypt_hook_nokey index db51475bd..8ee669c30 100755 --- a/src/modules/initramfscfg/encrypt_hook_nokey +++ b/src/modules/initramfscfg/encrypt_hook_nokey @@ -1,4 +1,7 @@ #!/bin/sh +# +# SPDX-FileCopyrightText: 2016 David McKinney +# SPDX-License-Identifier: GPL-3.0-or-later PREREQ="" diff --git a/src/modules/interactiveterminal/InteractiveTerminalPage.cpp b/src/modules/interactiveterminal/InteractiveTerminalPage.cpp index 5b2f81bfa..9d5f76724 100644 --- a/src/modules/interactiveterminal/InteractiveTerminalPage.cpp +++ b/src/modules/interactiveterminal/InteractiveTerminalPage.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,14 +19,14 @@ #include "InteractiveTerminalPage.h" -#include "viewpages/ViewStep.h" -#include "utils/Retranslator.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" +#include "utils/Retranslator.h" +#include "viewpages/ViewStep.h" -#include -#include #include +#include +#include #include #include @@ -49,17 +50,17 @@ InteractiveTerminalPage::InteractiveTerminalPage( QWidget* parent ) void InteractiveTerminalPage::errorKonsoleNotInstalled() { - QMessageBox::critical( this, - tr( "Konsole not installed"), - tr( "Please install KDE Konsole and try again!" ), - QMessageBox::Ok ); + QMessageBox::critical( + this, tr( "Konsole not installed" ), tr( "Please install KDE Konsole and try again!" ), QMessageBox::Ok ); } void InteractiveTerminalPage::onActivate() { if ( m_termHostWidget ) + { return; + } // For whatever reason, instead of simply linking against a library we // need to do a runtime query to KService just to get a sodding terminal // widget. @@ -69,14 +70,11 @@ InteractiveTerminalPage::onActivate() // And all of this hoping the Konsole application is installed. If not, // tough cookies. errorKonsoleNotInstalled(); - return ; + return; } // Create one instance of konsolepart. - KParts::ReadOnlyPart* p = - service->createInstance< KParts::ReadOnlyPart >( this, - this, - {} ); + KParts::ReadOnlyPart* p = service->createInstance< KParts::ReadOnlyPart >( this, this, {} ); if ( !p ) { // One more opportunity for the loading operation to fail. @@ -100,8 +98,7 @@ InteractiveTerminalPage::onActivate() m_termHostWidget = p->widget(); m_layout->addWidget( m_termHostWidget ); - cDebug() << "Part widget ought to be" - << m_termHostWidget->metaObject()->className(); + cDebug() << "Part widget ought to be" << m_termHostWidget->metaObject()->className(); t->showShellInDir( QDir::home().path() ); t->sendInput( QString( "%1\n" ).arg( m_command ) ); @@ -112,8 +109,5 @@ void InteractiveTerminalPage::setCommand( const QString& command ) { m_command = command; - CALAMARES_RETRANSLATE( - m_headerLabel->setText( tr( "Executing script:  %1" ) - .arg( m_command ) ); - ) + CALAMARES_RETRANSLATE( m_headerLabel->setText( tr( "Executing script:  %1" ).arg( m_command ) ); ) } diff --git a/src/modules/interactiveterminal/InteractiveTerminalPage.h b/src/modules/interactiveterminal/InteractiveTerminalPage.h index 503a53756..20ab0d651 100644 --- a/src/modules/interactiveterminal/InteractiveTerminalPage.h +++ b/src/modules/interactiveterminal/InteractiveTerminalPage.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -43,4 +44,4 @@ private: void errorKonsoleNotInstalled(); }; -#endif // INTERACTIVETERMINALPAGE_H +#endif // INTERACTIVETERMINALPAGE_H diff --git a/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp b/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp index 874c8a9cc..45019cf4a 100644 --- a/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp +++ b/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,7 +25,8 @@ #include -CALAMARES_PLUGIN_FACTORY_DEFINITION( InteractiveTerminalViewStepFactory, registerPlugin(); ) +CALAMARES_PLUGIN_FACTORY_DEFINITION( InteractiveTerminalViewStepFactory, + registerPlugin< InteractiveTerminalViewStep >(); ) InteractiveTerminalViewStep::InteractiveTerminalViewStep( QObject* parent ) : Calamares::ViewStep( parent ) @@ -37,7 +39,9 @@ InteractiveTerminalViewStep::InteractiveTerminalViewStep( QObject* parent ) InteractiveTerminalViewStep::~InteractiveTerminalViewStep() { if ( m_widget && m_widget->parent() == nullptr ) + { m_widget->deleteLater(); + } } @@ -102,8 +106,8 @@ InteractiveTerminalViewStep::onActivate() void InteractiveTerminalViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { - if ( configurationMap.contains( "command" ) && - configurationMap.value( "command").type() == QVariant::String ) + if ( configurationMap.contains( "command" ) && configurationMap.value( "command" ).type() == QVariant::String ) + { m_widget->setCommand( configurationMap.value( "command" ).toString() ); + } } - diff --git a/src/modules/interactiveterminal/InteractiveTerminalViewStep.h b/src/modules/interactiveterminal/InteractiveTerminalViewStep.h index bf26ba91e..d91fc07cc 100644 --- a/src/modules/interactiveterminal/InteractiveTerminalViewStep.h +++ b/src/modules/interactiveterminal/InteractiveTerminalViewStep.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -60,4 +61,4 @@ private: CALAMARES_PLUGIN_FACTORY_DECLARATION( InteractiveTerminalViewStepFactory ) -#endif // INTERACTIVETERMINALPAGEPLUGIN_H +#endif // INTERACTIVETERMINALPAGEPLUGIN_H diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp index 64b253835..bd2c41780 100644 --- a/src/modules/keyboard/Config.cpp +++ b/src/modules/keyboard/Config.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2019-2020, Adriaan de Groot - * Copyright 2020, Camilo Higuita * + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Camilo Higuita * + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/keyboard/Config.h b/src/modules/keyboard/Config.h index a05a5ab86..a7e9c621b 100644 --- a/src/modules/keyboard/Config.h +++ b/src/modules/keyboard/Config.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2019-2020, Adriaan de Groot - * Copyright 2020, Camilo Higuita + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Camilo Higuita + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/keyboard/KeyboardLayoutModel.cpp b/src/modules/keyboard/KeyboardLayoutModel.cpp index 7e24df570..9077ea60e 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.cpp +++ b/src/modules/keyboard/KeyboardLayoutModel.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/keyboard/KeyboardLayoutModel.h b/src/modules/keyboard/KeyboardLayoutModel.h index e0007fdbc..eeb0666fa 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.h +++ b/src/modules/keyboard/KeyboardLayoutModel.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/keyboard/KeyboardPage.cpp b/src/modules/keyboard/KeyboardPage.cpp index e8997b915..6ab472446 100644 --- a/src/modules/keyboard/KeyboardPage.cpp +++ b/src/modules/keyboard/KeyboardPage.cpp @@ -1,7 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Portions from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/keyboard/KeyboardPage.h b/src/modules/keyboard/KeyboardPage.h index 1ce21787c..73896923a 100644 --- a/src/modules/keyboard/KeyboardPage.h +++ b/src/modules/keyboard/KeyboardPage.h @@ -1,7 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Portions from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/keyboard/KeyboardViewStep.cpp b/src/modules/keyboard/KeyboardViewStep.cpp index e6e89eb1c..b424653f7 100644 --- a/src/modules/keyboard/KeyboardViewStep.cpp +++ b/src/modules/keyboard/KeyboardViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/keyboard/KeyboardViewStep.h b/src/modules/keyboard/KeyboardViewStep.h index 208d50686..8de05d0af 100644 --- a/src/modules/keyboard/KeyboardViewStep.h +++ b/src/modules/keyboard/KeyboardViewStep.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/keyboard/README.md b/src/modules/keyboard/README.md deleted file mode 100644 index cf4ce3994..000000000 --- a/src/modules/keyboard/README.md +++ /dev/null @@ -1,5 +0,0 @@ -Keyboard layout configuration viewmodule ---- -Requires ckbcomp script. - * Debian package console-setup or - * Manjaro package keyboardctl https://github.com/manjaro/packages-core/tree/master/keyboardctl diff --git a/src/modules/keyboard/SetKeyboardLayoutJob.cpp b/src/modules/keyboard/SetKeyboardLayoutJob.cpp index 537feeb8c..e9c20e0aa 100644 --- a/src/modules/keyboard/SetKeyboardLayoutJob.cpp +++ b/src/modules/keyboard/SetKeyboardLayoutJob.cpp @@ -1,7 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2014, Kevin Kofler + * SPDX-FileCopyrightText: 2011 Lennart Poettering + * SPDX-FileCopyrightText: Kay Sievers + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Kevin Kofler + * SPDX-License-Identifier: GPL-3.0-or-later * * Portions from systemd (localed.c): * Copyright 2011 Lennart Poettering diff --git a/src/modules/keyboard/SetKeyboardLayoutJob.h b/src/modules/keyboard/SetKeyboardLayoutJob.h index 599642b19..ee0cd0a99 100644 --- a/src/modules/keyboard/SetKeyboardLayoutJob.h +++ b/src/modules/keyboard/SetKeyboardLayoutJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2014, Kevin Kofler + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Kevin Kofler + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/keyboard/images/restore.png.license b/src/modules/keyboard/images/restore.png.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/src/modules/keyboard/images/restore.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/keyboard/kbd-model-map b/src/modules/keyboard/kbd-model-map index 49ec4ad75..e113c92ba 100644 --- a/src/modules/keyboard/kbd-model-map +++ b/src/modules/keyboard/kbd-model-map @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2015 Systemd authors and contributors +# SPDX-FileCopyrightText: 2018 Adriaan de Groot +# SPDX-License-Identifier: GPL-3.0-or-later +# # Copied from systemd-localed # # https://cgit.freedesktop.org/systemd/systemd/log/src/locale/kbd-model-map diff --git a/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp b/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp index f363ea844..d5f6984d4 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp +++ b/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp @@ -1,7 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Originally from the Manjaro Installation Framework * by Roland Singer @@ -43,18 +45,22 @@ static const char XKB_FILE[] = "/usr/share/X11/xkb/rules/base.lst"; * or hits end-of-file. Returns true if the section is found. The * @p name must include the "! " section marker as well. */ -static bool findSection( QFile& fh, const char* name ) +static bool +findSection( QFile& fh, const char* name ) { while ( !fh.atEnd() ) { QByteArray line = fh.readLine(); if ( line.startsWith( name ) ) + { return true; + } } return false; } -static KeyboardGlobal::ModelsMap parseKeyboardModels( const char* filepath ) +static KeyboardGlobal::ModelsMap +parseKeyboardModels( const char* filepath ) { KeyboardGlobal::ModelsMap models; @@ -75,7 +81,9 @@ static KeyboardGlobal::ModelsMap parseKeyboardModels( const char* filepath ) // check if we start a new section if ( line.startsWith( '!' ) ) + { break; + } // here we are in the model section, otherwhise we would continue or break QRegExp rx; @@ -88,7 +96,9 @@ static KeyboardGlobal::ModelsMap parseKeyboardModels( const char* filepath ) QString model = rx.cap( 1 ); if ( model == "pc105" ) + { modelDesc += " - " + QObject::tr( "Default Keyboard Model" ); + } models.insert( modelDesc, model ); } @@ -98,7 +108,8 @@ static KeyboardGlobal::ModelsMap parseKeyboardModels( const char* filepath ) } -KeyboardGlobal::LayoutsMap parseKeyboardLayouts( const char* filepath ) +KeyboardGlobal::LayoutsMap +parseKeyboardLayouts( const char* filepath ) { KeyboardGlobal::LayoutsMap layouts; @@ -120,7 +131,9 @@ KeyboardGlobal::LayoutsMap parseKeyboardLayouts( const char* filepath ) QByteArray line = fh.readLine(); if ( line.startsWith( '!' ) ) + { break; + } QRegExp rx; rx.setPattern( "^\\s+(\\S+)\\s+(\\w.*)\n$" ); @@ -147,7 +160,9 @@ KeyboardGlobal::LayoutsMap parseKeyboardLayouts( const char* filepath ) QByteArray line = fh.readLine(); if ( line.startsWith( '!' ) ) + { break; + } QRegExp rx; rx.setPattern( "^\\s+(\\S+)\\s+(\\S+): (\\w.*)\n$" ); @@ -176,14 +191,15 @@ KeyboardGlobal::LayoutsMap parseKeyboardLayouts( const char* filepath ) } -KeyboardGlobal::LayoutsMap KeyboardGlobal::getKeyboardLayouts() +KeyboardGlobal::LayoutsMap +KeyboardGlobal::getKeyboardLayouts() { return parseKeyboardLayouts( XKB_FILE ); } -KeyboardGlobal::ModelsMap KeyboardGlobal::getKeyboardModels() +KeyboardGlobal::ModelsMap +KeyboardGlobal::getKeyboardModels() { return parseKeyboardModels( XKB_FILE ); } - diff --git a/src/modules/keyboard/keyboardwidget/keyboardglobal.h b/src/modules/keyboard/keyboardwidget/keyboardglobal.h index 1732dc913..9e03c05e5 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardglobal.h +++ b/src/modules/keyboard/keyboardwidget/keyboardglobal.h @@ -1,7 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017, 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Originally from the Manjaro Installation Framework * by Roland Singer @@ -24,21 +26,22 @@ #ifndef KEYBOARDGLOBAL_H #define KEYBOARDGLOBAL_H -#include -#include -#include +#include #include -#include -#include +#include #include +#include #include #include -#include +#include +#include +#include class KeyboardGlobal { public: - struct KeyboardInfo { + struct KeyboardInfo + { QString description; QMap< QString, QString > variants; }; @@ -50,4 +53,4 @@ public: static ModelsMap getKeyboardModels(); }; -#endif // KEYBOARDGLOBAL_H +#endif // KEYBOARDGLOBAL_H diff --git a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp index 02ddd4186..6cc306526 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp +++ b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp @@ -1,7 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Portions from the Manjaro Installation Framework * by Roland Singer @@ -33,96 +35,126 @@ KeyBoardPreview::KeyBoardPreview( QWidget* parent ) , usable_width( 0 ) , key_w( 0 ) { - setMinimumSize(700, 191); + setMinimumSize( 700, 191 ); // We must set up the font size in pixels to fit the keys - lowerFont = QFont("Helvetica", 10, QFont::DemiBold); - lowerFont.setPixelSize(16); - upperFont = QFont("Helvetica", 8); - upperFont.setPixelSize(13); + lowerFont = QFont( "Helvetica", 10, QFont::DemiBold ); + lowerFont.setPixelSize( 16 ); + upperFont = QFont( "Helvetica", 8 ); + upperFont.setPixelSize( 13 ); // Setup keyboard types - kbList[KB_104].kb_extended_return = false; - kbList[KB_104].keys.append(QList() << 0x29 << 0x2 << 0x3 << 0x4 << 0x5 << 0x6 << 0x7 << 0x8 << 0x9 << 0xa << 0xb << 0xc << 0xd); - kbList[KB_104].keys.append(QList() << 0x10 << 0x11 << 0x12 << 0x13 << 0x14 << 0x15 << 0x16 << 0x17 << 0x18 << 0x19 << 0x1a << 0x1b << 0x2b); - kbList[KB_104].keys.append(QList() << 0x1e << 0x1f << 0x20 << 0x21 << 0x22 << 0x23 << 0x24 << 0x25 << 0x26 << 0x27 << 0x28); - kbList[KB_104].keys.append(QList() << 0x2c << 0x2d << 0x2e << 0x2f << 0x30 << 0x31 << 0x32 << 0x33 << 0x34 << 0x35); + kbList[ KB_104 ].kb_extended_return = false; + kbList[ KB_104 ].keys.append( QList< int >() << 0x29 << 0x2 << 0x3 << 0x4 << 0x5 << 0x6 << 0x7 << 0x8 << 0x9 << 0xa + << 0xb << 0xc << 0xd ); + kbList[ KB_104 ].keys.append( QList< int >() << 0x10 << 0x11 << 0x12 << 0x13 << 0x14 << 0x15 << 0x16 << 0x17 << 0x18 + << 0x19 << 0x1a << 0x1b << 0x2b ); + kbList[ KB_104 ].keys.append( QList< int >() << 0x1e << 0x1f << 0x20 << 0x21 << 0x22 << 0x23 << 0x24 << 0x25 << 0x26 + << 0x27 << 0x28 ); + kbList[ KB_104 ].keys.append( QList< int >() + << 0x2c << 0x2d << 0x2e << 0x2f << 0x30 << 0x31 << 0x32 << 0x33 << 0x34 << 0x35 ); - kbList[KB_105].kb_extended_return = true; - kbList[KB_105].keys.append(QList() << 0x29 << 0x2 << 0x3 << 0x4 << 0x5 << 0x6 << 0x7 << 0x8 << 0x9 << 0xa << 0xb << 0xc << 0xd); - kbList[KB_105].keys.append(QList() << 0x10 << 0x11 << 0x12 << 0x13 << 0x14 << 0x15 << 0x16 << 0x17 << 0x18 << 0x19 << 0x1a << 0x1b); - kbList[KB_105].keys.append(QList() << 0x1e << 0x1f << 0x20 << 0x21 << 0x22 << 0x23 << 0x24 << 0x25 << 0x26 << 0x27 << 0x28 << 0x2b); - kbList[KB_105].keys.append(QList() << 0x54 << 0x2c << 0x2d << 0x2e << 0x2f << 0x30 << 0x31 << 0x32 << 0x33 << 0x34 << 0x35); + kbList[ KB_105 ].kb_extended_return = true; + kbList[ KB_105 ].keys.append( QList< int >() << 0x29 << 0x2 << 0x3 << 0x4 << 0x5 << 0x6 << 0x7 << 0x8 << 0x9 << 0xa + << 0xb << 0xc << 0xd ); + kbList[ KB_105 ].keys.append( QList< int >() << 0x10 << 0x11 << 0x12 << 0x13 << 0x14 << 0x15 << 0x16 << 0x17 << 0x18 + << 0x19 << 0x1a << 0x1b ); + kbList[ KB_105 ].keys.append( QList< int >() << 0x1e << 0x1f << 0x20 << 0x21 << 0x22 << 0x23 << 0x24 << 0x25 << 0x26 + << 0x27 << 0x28 << 0x2b ); + kbList[ KB_105 ].keys.append( QList< int >() << 0x54 << 0x2c << 0x2d << 0x2e << 0x2f << 0x30 << 0x31 << 0x32 << 0x33 + << 0x34 << 0x35 ); - kbList[KB_106].kb_extended_return = true; - kbList[KB_106].keys.append(QList() << 0x29 << 0x2 << 0x3 << 0x4 << 0x5 << 0x6 << 0x7 << 0x8 << 0x9 << 0xa << 0xb << 0xc << 0xd << 0xe); - kbList[KB_106].keys.append(QList() << 0x10 << 0x11 << 0x12 << 0x13 << 0x14 << 0x15 << 0x16 << 0x17 << 0x18 << 0x19 << 0x1a << 0x1b); - kbList[KB_106].keys.append(QList() << 0x1e << 0x1f << 0x20 << 0x21 << 0x22 << 0x23 << 0x24 << 0x25 << 0x26 << 0x27 << 0x28 << 0x29); - kbList[KB_106].keys.append(QList() << 0x2c << 0x2d << 0x2e << 0x2f << 0x30 << 0x31 << 0x32 << 0x33 << 0x34 << 0x35 << 0x36); + kbList[ KB_106 ].kb_extended_return = true; + kbList[ KB_106 ].keys.append( QList< int >() << 0x29 << 0x2 << 0x3 << 0x4 << 0x5 << 0x6 << 0x7 << 0x8 << 0x9 << 0xa + << 0xb << 0xc << 0xd << 0xe ); + kbList[ KB_106 ].keys.append( QList< int >() << 0x10 << 0x11 << 0x12 << 0x13 << 0x14 << 0x15 << 0x16 << 0x17 << 0x18 + << 0x19 << 0x1a << 0x1b ); + kbList[ KB_106 ].keys.append( QList< int >() << 0x1e << 0x1f << 0x20 << 0x21 << 0x22 << 0x23 << 0x24 << 0x25 << 0x26 + << 0x27 << 0x28 << 0x29 ); + kbList[ KB_106 ].keys.append( QList< int >() << 0x2c << 0x2d << 0x2e << 0x2f << 0x30 << 0x31 << 0x32 << 0x33 << 0x34 + << 0x35 << 0x36 ); - kb = &kbList[KB_104]; + kb = &kbList[ KB_104 ]; } - -void KeyBoardPreview::setLayout(QString _layout) { +void +KeyBoardPreview::setLayout( QString _layout ) +{ layout = _layout; } - -void KeyBoardPreview::setVariant(QString _variant) { +void +KeyBoardPreview::setVariant( QString _variant ) +{ variant = _variant; - if (!loadCodes()) + if ( !loadCodes() ) + { return; + } loadInfo(); repaint(); } - //### //### Private //### - -void KeyBoardPreview::loadInfo() { +void +KeyBoardPreview::loadInfo() +{ // kb_104 - if (layout == "us" || layout == "th") - kb = &kbList[KB_104]; + if ( layout == "us" || layout == "th" ) + { + kb = &kbList[ KB_104 ]; + } // kb_106 - else if (layout == "jp") - kb = &kbList[KB_106]; + else if ( layout == "jp" ) + { + kb = &kbList[ KB_106 ]; + } // most keyboards are 105 key so default to that else - kb = &kbList[KB_105]; + { + kb = &kbList[ KB_105 ]; + } } - -bool KeyBoardPreview::loadCodes() { - if (layout.isEmpty()) +bool +KeyBoardPreview::loadCodes() +{ + if ( layout.isEmpty() ) + { return false; + } QStringList param; - param << "-model" << "pc106" << "-layout" << layout << "-compact"; - if (!variant.isEmpty()) + param << "-model" + << "pc106" + << "-layout" << layout << "-compact"; + if ( !variant.isEmpty() ) + { param << "-variant" << variant; + } QProcess process; - process.setEnvironment(QStringList() << "LANG=C" << "LC_MESSAGES=C"); - process.start("ckbcomp", param); - if (!process.waitForStarted()) + process.setEnvironment( QStringList() << "LANG=C" + << "LC_MESSAGES=C" ); + process.start( "ckbcomp", param ); + if ( !process.waitForStarted() ) { cWarning() << "ckbcomp not found , keyboard preview disabled"; return false; } - if (!process.waitForFinished()) + if ( !process.waitForFinished() ) { cWarning() << "ckbcomp failed, keyboard preview disabled"; return false; @@ -131,209 +163,247 @@ bool KeyBoardPreview::loadCodes() { // Clear codes codes.clear(); - const QStringList list = QString(process.readAll()).split("\n", SplitSkipEmptyParts); + const QStringList list = QString( process.readAll() ).split( "\n", SplitSkipEmptyParts ); - for (const QString &line : list) { - if (!line.startsWith("keycode") || !line.contains('=')) + for ( const QString& line : list ) + { + if ( !line.startsWith( "keycode" ) || !line.contains( '=' ) ) + { continue; + } - QStringList split = line.split('=').at(1).trimmed().split(' '); - if (split.size() < 4) + QStringList split = line.split( '=' ).at( 1 ).trimmed().split( ' ' ); + if ( split.size() < 4 ) + { continue; + } Code code; - code.plain = fromUnicodeString(split.at(0)); - code.shift = fromUnicodeString(split.at(1)); - code.ctrl = fromUnicodeString(split.at(2)); - code.alt = fromUnicodeString(split.at(3)); + code.plain = fromUnicodeString( split.at( 0 ) ); + code.shift = fromUnicodeString( split.at( 1 ) ); + code.ctrl = fromUnicodeString( split.at( 2 ) ); + code.alt = fromUnicodeString( split.at( 3 ) ); - if (code.ctrl == code.plain) + if ( code.ctrl == code.plain ) + { code.ctrl = ""; + } - if (code.alt == code.plain) + if ( code.alt == code.plain ) + { code.alt = ""; + } - codes.append(code); + codes.append( code ); } return true; } - -QString KeyBoardPreview::fromUnicodeString(QString raw) { - if (raw.startsWith("U+")) - return QChar(raw.mid(2).toInt(nullptr, 16)); - else if (raw.startsWith("+U")) - return QChar(raw.mid(3).toInt(nullptr, 16)); +QString +KeyBoardPreview::fromUnicodeString( QString raw ) +{ + if ( raw.startsWith( "U+" ) ) + { + return QChar( raw.mid( 2 ).toInt( nullptr, 16 ) ); + } + else if ( raw.startsWith( "+U" ) ) + { + return QChar( raw.mid( 3 ).toInt( nullptr, 16 ) ); + } return ""; } - -QString KeyBoardPreview::regular_text(int index) { - if (index < 0 || index >= codes.size()) +QString +KeyBoardPreview::regular_text( int index ) +{ + if ( index < 0 || index >= codes.size() ) + { return ""; + } - return codes.at(index - 1).plain; + return codes.at( index - 1 ).plain; } - -QString KeyBoardPreview::shift_text(int index) { - if (index < 0 || index >= codes.size()) +QString +KeyBoardPreview::shift_text( int index ) +{ + if ( index < 0 || index >= codes.size() ) + { return ""; + } - return codes.at(index - 1).shift; + return codes.at( index - 1 ).shift; } - -QString KeyBoardPreview::ctrl_text(int index) { - if (index < 0 || index >= codes.size()) +QString +KeyBoardPreview::ctrl_text( int index ) +{ + if ( index < 0 || index >= codes.size() ) + { return ""; + } - return codes.at(index - 1).ctrl; + return codes.at( index - 1 ).ctrl; } - -QString KeyBoardPreview::alt_text(int index) { - if (index < 0 || index >= codes.size()) +QString +KeyBoardPreview::alt_text( int index ) +{ + if ( index < 0 || index >= codes.size() ) + { return ""; + } - return codes.at(index - 1).alt; + return codes.at( index - 1 ).alt; } - -void KeyBoardPreview::resizeEvent(QResizeEvent *) { +void +KeyBoardPreview::resizeEvent( QResizeEvent* ) +{ space = 6; - usable_width = width()-7; - key_w = (usable_width - 14 * space)/15; + usable_width = width() - 7; + key_w = ( usable_width - 14 * space ) / 15; - setMaximumHeight(key_w*4 + space*5 + 1); + setMaximumHeight( key_w * 4 + space * 5 + 1 ); } +void +KeyBoardPreview::paintEvent( QPaintEvent* event ) +{ + QPainter p( this ); + p.setRenderHint( QPainter::Antialiasing ); -void KeyBoardPreview::paintEvent(QPaintEvent* event) { - QPainter p(this); - p.setRenderHint(QPainter::Antialiasing); - - p.setBrush(QColor(0xd6, 0xd6, 0xd6)); - p.drawRect(rect()); + p.setBrush( QColor( 0xd6, 0xd6, 0xd6 ) ); + p.drawRect( rect() ); QPen pen; - pen.setWidth(1); - pen.setColor(QColor(0x58, 0x58, 0x58)); - p.setPen(pen); + pen.setWidth( 1 ); + pen.setColor( QColor( 0x58, 0x58, 0x58 ) ); + p.setPen( pen ); - p.setBrush(QColor(0x58, 0x58, 0x58)); + p.setBrush( QColor( 0x58, 0x58, 0x58 ) ); - p.setBackgroundMode(Qt::TransparentMode); - p.translate(0.5, 0.5); + p.setBackgroundMode( Qt::TransparentMode ); + p.translate( 0.5, 0.5 ); int rx = 3; - int x=6; - int y=6; + int x = 6; + int y = 6; int first_key_w = 0; - int remaining_x[] = {0,0,0,0}; - int remaining_widths[] = {0,0,0,0}; + int remaining_x[] = { 0, 0, 0, 0 }; + int remaining_widths[] = { 0, 0, 0, 0 }; - for (int i = 0; i < 4; i++) { - if (first_key_w > 0) { - first_key_w = int(first_key_w * 1.375); + for ( int i = 0; i < 4; i++ ) + { + if ( first_key_w > 0 ) + { + first_key_w = int( first_key_w * 1.375 ); - if (kb == &kbList[KB_105] && i == 3) - first_key_w = int(key_w * 1.275); + if ( kb == &kbList[ KB_105 ] && i == 3 ) + { + first_key_w = int( key_w * 1.275 ); + } - p.drawRoundedRect(QRectF(6, y, first_key_w, key_w), rx, rx); + p.drawRoundedRect( QRectF( 6, y, first_key_w, key_w ), rx, rx ); x = 6 + first_key_w + space; } - else { + else + { first_key_w = key_w; } + bool last_end = ( i == 1 && !kb->kb_extended_return ); + int rw = usable_width - x; + int ii = 0; - bool last_end = (i==1 && ! kb->kb_extended_return); - int rw=usable_width-x; - int ii=0; + for ( int k : kb->keys.at( i ) ) + { + QRectF rect = QRectF( x, y, key_w, key_w ); - for (int k : kb->keys.at(i)) { - QRectF rect = QRectF(x, y, key_w, key_w); + if ( ii == kb->keys.at( i ).size() - 1 && last_end ) + { + rect.setWidth( rw ); + } - if (ii == kb->keys.at(i).size()-1 && last_end) - rect.setWidth(rw); + p.drawRoundedRect( rect, rx, rx ); - p.drawRoundedRect(rect, rx, rx); + rect.adjust( 5, 1, 0, 0 ); - rect.adjust(5, 1, 0, 0); + p.setPen( QColor( 0x9e, 0xde, 0x00 ) ); + p.setFont( upperFont ); + p.drawText( rect, Qt::AlignLeft | Qt::AlignTop, shift_text( k ) ); - p.setPen(QColor(0x9e, 0xde, 0x00)); - p.setFont(upperFont); - p.drawText(rect, Qt::AlignLeft | Qt::AlignTop, shift_text(k)); + rect.setBottom( rect.bottom() - 2.5 ); - rect.setBottom(rect.bottom() - 2.5); - - p.setPen(QColor(0xff, 0xff, 0xff)); - p.setFont(lowerFont); - p.drawText(rect, Qt::AlignLeft | Qt::AlignBottom, regular_text(k)); + p.setPen( QColor( 0xff, 0xff, 0xff ) ); + p.setFont( lowerFont ); + p.drawText( rect, Qt::AlignLeft | Qt::AlignBottom, regular_text( k ) ); rw = rw - space - key_w; x = x + space + key_w; - ii = ii+1; + ii = ii + 1; - p.setPen(pen); + p.setPen( pen ); } + remaining_x[ i ] = x; + remaining_widths[ i ] = rw; - remaining_x[i] = x; - remaining_widths[i] = rw; - - if (i != 1 && i != 2) - p.drawRoundedRect(QRectF(x, y, rw, key_w), rx, rx); + if ( i != 1 && i != 2 ) + { + p.drawRoundedRect( QRectF( x, y, rw, key_w ), rx, rx ); + } y = y + space + key_w; } - if (kb->kb_extended_return) { - rx=rx*2; - int x1 = remaining_x[1]; - int y1 = 6 + key_w*1 + space*1; - int w1 = remaining_widths[1]; - int x2 = remaining_x[2]; - int y2 = 6 + key_w*2 + space*2; + if ( kb->kb_extended_return ) + { + rx = rx * 2; + int x1 = remaining_x[ 1 ]; + int y1 = 6 + key_w * 1 + space * 1; + int w1 = remaining_widths[ 1 ]; + int x2 = remaining_x[ 2 ]; + int y2 = 6 + key_w * 2 + space * 2; // this is some serious crap... but it has to be so // maybe one day keyboards won't look like this... // one can only hope QPainterPath pp; - pp.moveTo(x1, y1+rx); - pp.arcTo(x1, y1, rx, rx, 180, -90); - pp.lineTo(x1+w1-rx, y1); - pp.arcTo(x1+w1-rx, y1, rx, rx, 90, -90); - pp.lineTo(x1+w1, y2+key_w-rx); - pp.arcTo(x1+w1-rx, y2+key_w-rx, rx, rx, 0, -90); - pp.lineTo(x2+rx, y2+key_w); - pp.arcTo(x2, y2+key_w-rx, rx, rx, -90, -90); - pp.lineTo(x2, y1+key_w); - pp.lineTo(x1+rx, y1+key_w); - pp.arcTo(x1, y1+key_w-rx, rx, rx, -90, -90); + pp.moveTo( x1, y1 + rx ); + pp.arcTo( x1, y1, rx, rx, 180, -90 ); + pp.lineTo( x1 + w1 - rx, y1 ); + pp.arcTo( x1 + w1 - rx, y1, rx, rx, 90, -90 ); + pp.lineTo( x1 + w1, y2 + key_w - rx ); + pp.arcTo( x1 + w1 - rx, y2 + key_w - rx, rx, rx, 0, -90 ); + pp.lineTo( x2 + rx, y2 + key_w ); + pp.arcTo( x2, y2 + key_w - rx, rx, rx, -90, -90 ); + pp.lineTo( x2, y1 + key_w ); + pp.lineTo( x1 + rx, y1 + key_w ); + pp.arcTo( x1, y1 + key_w - rx, rx, rx, -90, -90 ); pp.closeSubpath(); - p.drawPath(pp); + p.drawPath( pp ); } - else { - x= remaining_x[2]; - y = 6 + key_w*2 + space*2; - p.drawRoundedRect(QRectF(x, y, remaining_widths[2], key_w), rx, rx); + else + { + x = remaining_x[ 2 ]; + y = 6 + key_w * 2 + space * 2; + p.drawRoundedRect( QRectF( x, y, remaining_widths[ 2 ], key_w ), rx, rx ); } - QWidget::paintEvent(event); + QWidget::paintEvent( event ); } diff --git a/src/modules/keyboard/keyboardwidget/keyboardpreview.h b/src/modules/keyboard/keyboardwidget/keyboardpreview.h index 881866147..f09f9b5f5 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardpreview.h +++ b/src/modules/keyboard/keyboardwidget/keyboardpreview.h @@ -1,6 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Portions from the Manjaro Installation Framework * by Roland Singer @@ -23,17 +25,17 @@ #ifndef KEYBOARDPREVIEW_H #define KEYBOARDPREVIEW_H -#include -#include +#include #include #include -#include #include -#include +#include #include #include +#include #include #include +#include class KeyBoardPreview : public QWidget @@ -41,40 +43,46 @@ class KeyBoardPreview : public QWidget Q_OBJECT public: explicit KeyBoardPreview( QWidget* parent = nullptr ); - - void setLayout(QString layout); - void setVariant(QString variant); + + void setLayout( QString layout ); + void setVariant( QString variant ); private: - enum KB_TYPE { KB_104, KB_105, KB_106 }; - - struct KB { - bool kb_extended_return; - QList > keys; + enum KB_TYPE + { + KB_104, + KB_105, + KB_106 }; - struct Code { + struct KB + { + bool kb_extended_return; + QList< QList< int > > keys; + }; + + struct Code + { QString plain, shift, ctrl, alt; }; QString layout, variant; QFont lowerFont, upperFont; - KB* kb, kbList[3]; - QList codes; + KB *kb, kbList[ 3 ]; + QList< Code > codes; int space, usable_width, key_w; void loadInfo(); bool loadCodes(); - QString regular_text(int index); - QString shift_text(int index); - QString ctrl_text(int index); - QString alt_text(int index); - QString fromUnicodeString(QString raw); + QString regular_text( int index ); + QString shift_text( int index ); + QString ctrl_text( int index ); + QString alt_text( int index ); + QString fromUnicodeString( QString raw ); protected: - void paintEvent(QPaintEvent* event); - void resizeEvent(QResizeEvent* event); - + void paintEvent( QPaintEvent* event ); + void resizeEvent( QResizeEvent* event ); }; -#endif // KEYBOARDPREVIEW_H +#endif // KEYBOARDPREVIEW_H diff --git a/src/modules/keyboardq/KeyboardQmlViewStep.cpp b/src/modules/keyboardq/KeyboardQmlViewStep.cpp index 783349075..a5c1f9435 100644 --- a/src/modules/keyboardq/KeyboardQmlViewStep.cpp +++ b/src/modules/keyboardq/KeyboardQmlViewStep.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2020, Camilo Higuita + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2020 Camilo Higuita + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/keyboardq/KeyboardQmlViewStep.h b/src/modules/keyboardq/KeyboardQmlViewStep.h index 22826f2cd..b1e7e15e7 100644 --- a/src/modules/keyboardq/KeyboardQmlViewStep.h +++ b/src/modules/keyboardq/KeyboardQmlViewStep.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index f2b1f4a50..411032404 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Anke Boersma - * Copyright 2015, Alexandre Arnt - * Copyright 2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Anke Boersma + * SPDX-FileCopyrightText: 2015 Alexandre Arnt + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/license/LicensePage.h b/src/modules/license/LicensePage.h index dcd3ea7b4..8493825b5 100644 --- a/src/modules/license/LicensePage.h +++ b/src/modules/license/LicensePage.h @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Anke Boersma - * Copyright 2015, Alexandre Arnt - * Copyright 2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Anke Boersma + * SPDX-FileCopyrightText: 2015 Alexandre Arnt + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/license/LicenseViewStep.cpp b/src/modules/license/LicenseViewStep.cpp index 89cddf27f..24ae5652a 100644 --- a/src/modules/license/LicenseViewStep.cpp +++ b/src/modules/license/LicenseViewStep.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Anke Boersma - * Copyright 2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2015 Anke Boersma + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/license/LicenseViewStep.h b/src/modules/license/LicenseViewStep.h index 6bfab4246..3aef1f7f3 100644 --- a/src/modules/license/LicenseViewStep.h +++ b/src/modules/license/LicenseViewStep.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Anke Boersma - * Copyright 2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2015 Anke Boersma + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/license/LicenseWidget.cpp b/src/modules/license/LicenseWidget.cpp index 09d2230e5..a5f6d688a 100644 --- a/src/modules/license/LicenseWidget.cpp +++ b/src/modules/license/LicenseWidget.cpp @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Anke Boersma - * Copyright 2015, Alexandre Arnt - * Copyright 2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Anke Boersma + * SPDX-FileCopyrightText: 2015 Alexandre Arnt + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/license/LicenseWidget.h b/src/modules/license/LicenseWidget.h index a386ae353..08aa031c5 100644 --- a/src/modules/license/LicenseWidget.h +++ b/src/modules/license/LicenseWidget.h @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Anke Boersma - * Copyright 2015, Alexandre Arnt - * Copyright 2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Anke Boersma + * SPDX-FileCopyrightText: 2015 Alexandre Arnt + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/license/README.md b/src/modules/license/README.md index 4c9862c8a..0ad7a636e 100644 --- a/src/modules/license/README.md +++ b/src/modules/license/README.md @@ -1,11 +1,25 @@ ### License Approval Module ---------- -For distributions shipping proprietary software, this module creates a globalstorage entry when the user accepts or declines one or more presented End User License Agreements files. -The number of licenses shown are configurable. The license.conf file has a few examples of how to add URLs. -If you do not want to include this module in your Calamares build, add ```-DSKIP_MODULES="license"``` to your build settings (CMake call). + + +For distributions shipping proprietary software, this module creates a +Global Storage entry when the user accepts or declines one or more of +the End User License Agreements files that are presented here. + +The number of licenses shown are configurable. The `license.conf` file +has a few examples of how to add URLs. + +If you do not want to include this module in your Calamares build, +add `-DSKIP_MODULES="license"` to your build settings (CMake call). + +How to implement the removal or not installing of proprietary software is +up to any distribution to implement. For example, proprietary graphics +drivers cannot simply be removed in the packages module, a free version +will need to be installed. -How to implement the removal or not installing of proprietary software is up to any distribution to implement. For example, proprietary graphics drivers cannot simply be removed in the packages module, a free version will need to be installed. An example of where the licenseAgree globalstorage entry is used: https://github.com/KaOSx/calamares/blob/master/src/modules/nonfree_drivers/main.py diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 5bbe20038..ae4f772ad 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -2,7 +2,6 @@ * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index d95606d99..cbebf9844 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -2,7 +2,6 @@ * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/LCLocaleDialog.cpp b/src/modules/locale/LCLocaleDialog.cpp index db33f0c3d..a3b0a4d2c 100644 --- a/src/modules/locale/LCLocaleDialog.cpp +++ b/src/modules/locale/LCLocaleDialog.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/LCLocaleDialog.h b/src/modules/locale/LCLocaleDialog.h index 81e4cb547..389c98ba6 100644 --- a/src/modules/locale/LCLocaleDialog.h +++ b/src/modules/locale/LCLocaleDialog.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/LocaleConfiguration.cpp b/src/modules/locale/LocaleConfiguration.cpp index 055907228..41f315f0b 100644 --- a/src/modules/locale/LocaleConfiguration.cpp +++ b/src/modules/locale/LocaleConfiguration.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/LocaleConfiguration.h b/src/modules/locale/LocaleConfiguration.h index 2e02bc02a..de3da1d74 100644 --- a/src/modules/locale/LocaleConfiguration.h +++ b/src/modules/locale/LocaleConfiguration.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 4f2d321b5..57dbfe540 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 9ffb96c25..34f4d783b 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index 0a40da861..735e5d2ce 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/SetTimezoneJob.cpp b/src/modules/locale/SetTimezoneJob.cpp index aa8c4c241..2d90a6609 100644 --- a/src/modules/locale/SetTimezoneJob.cpp +++ b/src/modules/locale/SetTimezoneJob.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2015, Rohan Garg + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2015 Rohan Garg + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/SetTimezoneJob.h b/src/modules/locale/SetTimezoneJob.h index 7b93770bb..b4e04edf2 100644 --- a/src/modules/locale/SetTimezoneJob.h +++ b/src/modules/locale/SetTimezoneJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/images/bg.png.license b/src/modules/locale/images/bg.png.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/src/modules/locale/images/bg.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/locale/images/pin.png.license b/src/modules/locale/images/pin.png.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/src/modules/locale/images/pin.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/locale/timezonewidget/TimeZoneImage.cpp b/src/modules/locale/timezonewidget/TimeZoneImage.cpp index 22bd263d6..1d1c1f806 100644 --- a/src/modules/locale/timezonewidget/TimeZoneImage.cpp +++ b/src/modules/locale/timezonewidget/TimeZoneImage.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/timezonewidget/TimeZoneImage.h b/src/modules/locale/timezonewidget/TimeZoneImage.h index ee02bfbfd..6c77303a5 100644 --- a/src/modules/locale/timezonewidget/TimeZoneImage.h +++ b/src/modules/locale/timezonewidget/TimeZoneImage.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 778f0535d..b2c0efc5b 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -1,7 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Originally from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index c15570b52..dc95429de 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -1,7 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Originally from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/localeq/LocaleQmlViewStep.cpp b/src/modules/localeq/LocaleQmlViewStep.cpp index d60664a8f..6531e59a2 100644 --- a/src/modules/localeq/LocaleQmlViewStep.cpp +++ b/src/modules/localeq/LocaleQmlViewStep.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018,2020 Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 20182020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/localeq/LocaleQmlViewStep.h b/src/modules/localeq/LocaleQmlViewStep.h index bbafd5abb..261c1cfc2 100644 --- a/src/modules/localeq/LocaleQmlViewStep.h +++ b/src/modules/localeq/LocaleQmlViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019-2020 Adriaan de Groot + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/localeq/Map.qml b/src/modules/localeq/Map.qml index d414825dd..3a2041bc0 100644 --- a/src/modules/localeq/Map.qml +++ b/src/modules/localeq/Map.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Anke Boersma + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/localeq/Offline.qml b/src/modules/localeq/Offline.qml index 8e9d91280..72170711d 100644 --- a/src/modules/localeq/Offline.qml +++ b/src/modules/localeq/Offline.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Anke Boersma + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/localeq/i18n.qml b/src/modules/localeq/i18n.qml index 6907b1ba8..06f871b28 100644 --- a/src/modules/localeq/i18n.qml +++ b/src/modules/localeq/i18n.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Anke Boersma + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/localeq/img/chevron-left-solid.svg.license b/src/modules/localeq/img/chevron-left-solid.svg.license new file mode 100644 index 000000000..5a578a8a2 --- /dev/null +++ b/src/modules/localeq/img/chevron-left-solid.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2020 https://github.com/FortAwesome/Font-Awesome +SPDX-License-Identifier: CC-BY-4.0 diff --git a/src/modules/localeq/img/locale.svg.license b/src/modules/localeq/img/locale.svg.license new file mode 100644 index 000000000..5f43e650d --- /dev/null +++ b/src/modules/localeq/img/locale.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2020 demmm +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/localeq/img/minus.png.license b/src/modules/localeq/img/minus.png.license new file mode 100644 index 000000000..5f43e650d --- /dev/null +++ b/src/modules/localeq/img/minus.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2020 demmm +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/localeq/img/pin.svg.license b/src/modules/localeq/img/pin.svg.license new file mode 100644 index 000000000..5f43e650d --- /dev/null +++ b/src/modules/localeq/img/pin.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2020 demmm +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/localeq/img/plus.png.license b/src/modules/localeq/img/plus.png.license new file mode 100644 index 000000000..5f43e650d --- /dev/null +++ b/src/modules/localeq/img/plus.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2020 demmm +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/localeq/img/worldmap.png.license b/src/modules/localeq/img/worldmap.png.license new file mode 100644 index 000000000..5f43e650d --- /dev/null +++ b/src/modules/localeq/img/worldmap.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2020 demmm +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/localeq/localeq.qml b/src/modules/localeq/localeq.qml index a2013f5de..f862e2d08 100644 --- a/src/modules/localeq/localeq.qml +++ b/src/modules/localeq/localeq.qml @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot - * Copyright 2020, Anke Boersma + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp b/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp index 90d64d5a6..63b5d753d 100644 --- a/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp +++ b/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp @@ -1,19 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "LuksBootKeyFileJob.h" diff --git a/src/modules/luksbootkeyfile/LuksBootKeyFileJob.h b/src/modules/luksbootkeyfile/LuksBootKeyFileJob.h index de9b9c677..780f90883 100644 --- a/src/modules/luksbootkeyfile/LuksBootKeyFileJob.h +++ b/src/modules/luksbootkeyfile/LuksBootKeyFileJob.h @@ -1,19 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LUKSBOOTKEYFILEJOB_H diff --git a/src/modules/machineid/MachineIdJob.cpp b/src/modules/machineid/MachineIdJob.cpp index fc535e356..d70b0fed4 100644 --- a/src/modules/machineid/MachineIdJob.cpp +++ b/src/modules/machineid/MachineIdJob.cpp @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Kevin Kofler - * Copyright 2016, Philip Müller - * Copyright 2017, Alf Gaida - * Copyright 2019-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Kevin Kofler + * SPDX-FileCopyrightText: 2016 Philip Müller + * SPDX-FileCopyrightText: 2017 Alf Gaida + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/machineid/MachineIdJob.h b/src/modules/machineid/MachineIdJob.h index 08943392a..91d091b16 100644 --- a/src/modules/machineid/MachineIdJob.h +++ b/src/modules/machineid/MachineIdJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/machineid/Tests.cpp b/src/modules/machineid/Tests.cpp index 2b6a9b1d1..af2dcee3f 100644 --- a/src/modules/machineid/Tests.cpp +++ b/src/modules/machineid/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -130,7 +131,7 @@ MachineIdTests::testJob() // Prepare part of the target filesystem { - QVERIFY( system->createTargetDirs("/etc") ); + QVERIFY( system->createTargetDirs( "/etc" ) ); auto r = system->createTargetFile( "/etc/machine-id", "Hello" ); QVERIFY( !r.failed() ); QVERIFY( r ); @@ -164,7 +165,7 @@ MachineIdTests::testJob() QFileInfo fi( "/tmp/var/lib/dbus/machine-id" ); QVERIFY( fi.exists() ); QVERIFY( fi.isSymLink() ); - QCOMPARE( fi.size(), 5); + QCOMPARE( fi.size(), 5 ); #endif } tempRoot.setAutoRemove( true ); // All tests succeeded diff --git a/src/modules/machineid/Workers.cpp b/src/modules/machineid/Workers.cpp index 76e466435..67910ce9a 100644 --- a/src/modules/machineid/Workers.cpp +++ b/src/modules/machineid/Workers.cpp @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Kevin Kofler - * Copyright 2016, Philip Müller - * Copyright 2017, Alf Gaida - * Copyright 2019-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Kevin Kofler + * SPDX-FileCopyrightText: 2016 Philip Müller + * SPDX-FileCopyrightText: 2017 Alf Gaida + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/machineid/Workers.h b/src/modules/machineid/Workers.h index 8cb8d74ff..8e6926760 100644 --- a/src/modules/machineid/Workers.h +++ b/src/modules/machineid/Workers.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/Config.cpp b/src/modules/netinstall/Config.cpp index 062518221..8383b51af 100644 --- a/src/modules/netinstall/Config.cpp +++ b/src/modules/netinstall/Config.cpp @@ -1,9 +1,10 @@ /* - * Copyright 2016, Luca Giambonini - * Copyright 2016, Lisa Vitolo - * Copyright 2017, Kyle Robbertze - * Copyright 2017-2018, 2020, Adriaan de Groot - * Copyright 2017, Gabriel Craciunescu + * SPDX-FileCopyrightText: 2016 Luca Giambonini + * SPDX-FileCopyrightText: 2016 Lisa Vitolo + * SPDX-FileCopyrightText: 2017 Kyle Robbertze + * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/Config.h b/src/modules/netinstall/Config.h index 781c9be5d..a7e979827 100644 --- a/src/modules/netinstall/Config.h +++ b/src/modules/netinstall/Config.h @@ -1,8 +1,9 @@ /* - * Copyright 2016, Luca Giambonini - * Copyright 2016, Lisa Vitolo - * Copyright 2017, Kyle Robbertze - * Copyright 2017-2018, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Luca Giambonini + * SPDX-FileCopyrightText: 2016 Lisa Vitolo + * SPDX-FileCopyrightText: 2017 Kyle Robbertze + * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index 755b17999..309adc490 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -1,9 +1,10 @@ /* - * Copyright 2016, Luca Giambonini - * Copyright 2016, Lisa Vitolo - * Copyright 2017, Kyle Robbertze - * Copyright 2017-2018, 2020, Adriaan de Groot - * Copyright 2017, Gabriel Craciunescu + * SPDX-FileCopyrightText: 2016 Luca Giambonini + * SPDX-FileCopyrightText: 2016 Lisa Vitolo + * SPDX-FileCopyrightText: 2017 Kyle Robbertze + * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/NetInstallPage.h b/src/modules/netinstall/NetInstallPage.h index 13a106eaf..c680360d4 100644 --- a/src/modules/netinstall/NetInstallPage.h +++ b/src/modules/netinstall/NetInstallPage.h @@ -1,8 +1,9 @@ /* - * Copyright 2016, Luca Giambonini - * Copyright 2016, Lisa Vitolo - * Copyright 2017, Kyle Robbertze - * Copyright 2017-2018, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Luca Giambonini + * SPDX-FileCopyrightText: 2016 Lisa Vitolo + * SPDX-FileCopyrightText: 2017 Kyle Robbertze + * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index e99b43830..3b82ff5e0 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -1,8 +1,9 @@ /* - * Copyright 2016, Luca Giambonini - * Copyright 2016, Lisa Vitolo - * Copyright 2017, Kyle Robbertze - * Copyright 2017-2018, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Luca Giambonini + * SPDX-FileCopyrightText: 2016 Lisa Vitolo + * SPDX-FileCopyrightText: 2017 Kyle Robbertze + * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/NetInstallViewStep.h b/src/modules/netinstall/NetInstallViewStep.h index d2114a346..44299632c 100644 --- a/src/modules/netinstall/NetInstallViewStep.h +++ b/src/modules/netinstall/NetInstallViewStep.h @@ -1,7 +1,8 @@ /* - * Copyright 2016, Luca Giambonini - * Copyright 2016, Lisa Vitolo - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Luca Giambonini + * SPDX-FileCopyrightText: 2016 Lisa Vitolo + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/PackageModel.cpp b/src/modules/netinstall/PackageModel.cpp index dd5047129..b5e6103c8 100644 --- a/src/modules/netinstall/PackageModel.cpp +++ b/src/modules/netinstall/PackageModel.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright (c) 2017, Kyle Robbertze - * Copyright 2017-2018, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Kyle Robbertze + * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/PackageModel.h b/src/modules/netinstall/PackageModel.h index b4e8fc102..35bc11354 100644 --- a/src/modules/netinstall/PackageModel.h +++ b/src/modules/netinstall/PackageModel.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright (c) 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Kyle Robbertze + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/PackageTreeItem.cpp b/src/modules/netinstall/PackageTreeItem.cpp index 30a57ac2a..32fcf4296 100644 --- a/src/modules/netinstall/PackageTreeItem.cpp +++ b/src/modules/netinstall/PackageTreeItem.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright (c) 2017, Kyle Robbertze - * Copyright 2017, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Kyle Robbertze + * SPDX-FileCopyrightText: 2017 2020, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/PackageTreeItem.h b/src/modules/netinstall/PackageTreeItem.h index 0b2d506d7..5df703a29 100644 --- a/src/modules/netinstall/PackageTreeItem.h +++ b/src/modules/netinstall/PackageTreeItem.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright (c) 2017, Kyle Robbertze - * Copyright 2017, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Kyle Robbertze + * SPDX-FileCopyrightText: 2017 2020, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/README.md b/src/modules/netinstall/README.md deleted file mode 100644 index 0a9db2f22..000000000 --- a/src/modules/netinstall/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Netinstall module - -All of the actual documentation of the netinstall module has moved -into the `netinstall.conf` file; since the configuration file **may** -contain the groups-and-packages list itself, that format is -also described there. diff --git a/src/modules/netinstall/Tests.cpp b/src/modules/netinstall/Tests.cpp index c74e6aafe..1ffc72f3f 100644 --- a/src/modules/netinstall/Tests.cpp +++ b/src/modules/netinstall/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/netinstall.yaml b/src/modules/netinstall/netinstall.yaml index 6a93d84ea..e55bc1b24 100644 --- a/src/modules/netinstall/netinstall.yaml +++ b/src/modules/netinstall/netinstall.yaml @@ -1,5 +1,8 @@ # Example configuration with groups and packages, taken from Chakra Linux. # +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # This example is rather limited. See `netinstall.conf` for full documentation # on the configuration format. The module configuration file `netinstall.conf` # **may** contain the package-list, but that is only useful for static diff --git a/src/modules/notesqml/NotesQmlViewStep.cpp b/src/modules/notesqml/NotesQmlViewStep.cpp index 5a6bbc494..4d0430e95 100644 --- a/src/modules/notesqml/NotesQmlViewStep.cpp +++ b/src/modules/notesqml/NotesQmlViewStep.cpp @@ -1,20 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot - * Copyright 2020, Anke Boersma + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "NotesQmlViewStep.h" @@ -45,7 +34,7 @@ NotesQmlViewStep::setConfigurationMap( const QVariantMap& configurationMap ) m_notesName = new CalamaresUtils::Locale::TranslatedString( qmlLabel, "notes" ); } - Calamares::QmlViewStep::setConfigurationMap( configurationMap ); // call parent implementation last + Calamares::QmlViewStep::setConfigurationMap( configurationMap ); // call parent implementation last } CALAMARES_PLUGIN_FACTORY_DEFINITION( NotesQmlViewStepFactory, registerPlugin< NotesQmlViewStep >(); ) diff --git a/src/modules/notesqml/NotesQmlViewStep.h b/src/modules/notesqml/NotesQmlViewStep.h index 5ffd4598e..8545b47b9 100644 --- a/src/modules/notesqml/NotesQmlViewStep.h +++ b/src/modules/notesqml/NotesQmlViewStep.h @@ -1,20 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot - * Copyright 2020, Anke Boersma + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef NOTESQMLVIEWSTEP_H @@ -23,8 +12,8 @@ #include "DllMacro.h" #include "locale/TranslatableConfiguration.h" #include "utils/CalamaresUtilsSystem.h" -#include "utils/Variant.h" #include "utils/PluginFactory.h" +#include "utils/Variant.h" #include "viewpages/QmlViewStep.h" class PLUGINDLLEXPORT NotesQmlViewStep : public Calamares::QmlViewStep @@ -36,7 +25,7 @@ public: virtual ~NotesQmlViewStep() override; QString prettyName() const override; - + void setConfigurationMap( const QVariantMap& configurationMap ) override; private: diff --git a/src/modules/notesqml/examples/notesqml.qml.example b/src/modules/notesqml/examples/notesqml.qml.example index a41fa98fd..b3094f447 100644 --- a/src/modules/notesqml/examples/notesqml.qml.example +++ b/src/modules/notesqml/examples/notesqml.qml.example @@ -1,20 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Anke Boersma - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /* Some Calamares internals are available to all QML modules. @@ -25,60 +14,61 @@ */ import calamares.ui 1.0 -import QtQuick 2.7 -import QtQuick.Controls 2.2 -import QtQuick.Window 2.2 -import QtQuick.Layouts 1.3 -import QtQuick.Controls.Material 2.1 + import QtQuick 2.7 import QtQuick.Controls 2.2 import QtQuick.Window 2.2 import QtQuick.Layouts 1.3 import QtQuick.Controls.Material 2.1 -Item { - width: 740 - height: 420 + Item +{ +width: + 740 height : 420 - Flickable { - id: flick - anchors.fill: parent - contentHeight: 800 + Flickable + { + id: + flick anchors + .fill : parent contentHeight : 800 - ScrollBar.vertical: ScrollBar { - id: fscrollbar - width: 10 - policy: ScrollBar.AlwaysOn - } + ScrollBar.vertical : ScrollBar { id : fscrollbar width : 10 policy : ScrollBar.AlwaysOn } - TextArea { - id: intro + TextArea + { + id: + intro x: 1 y: 0 - width: parent.width - fscrollbar.width +width: + parent.width - fscrollbar.width font.pointSize: 14 - textFormat: Text.RichText - antialiasing: true - activeFocusOnPress: false - wrapMode: Text.WordWrap +textFormat: + Text.RichText +antialiasing: + true +activeFocusOnPress: + false +wrapMode: + Text.WordWrap - text: qsTr("

    %1

    -

    This an example QML file, showing options in RichText with Flickable content.

    +text: + qsTr( "

    %1

    +

    This an example QML file, showing options in RichText with Flickable content.

    -

    QML with RichText can use HTML tags, Flickable content is useful for touchscreens.

    +

    QML with RichText can use HTML tags, Flickable content is useful for touchscreens.

    -

    This is bold text

    -

    This is italic text

    -

    This is underlined text

    -

    This text will be center-aligned.

    -

    This is strikethrough

    +

    This is bold text

    +

    This is italic text

    +

    This is underlined text

    +

    This text will be center-aligned.

    +

    This is strikethrough

    -

    Code example: - ls -l /home

    +

    Code example: + ls -l /home

    -

    Lists:

    -
      -
    • Intel CPU systems
    • -
    • AMD CPU systems
    • -
    - -

    The vertical scrollbar is adjustable, current width set to 10.

    ").arg(Branding.string(Branding.VersionedName)) +

    Lists:

    +
      +
    • Intel CPU systems
    • +
    • AMD CPU systems
    • +
    +

    The vertical scrollbar is adjustable, current width set to 10.

    ").arg(Branding.string(Branding.VersionedName)) } } } diff --git a/src/modules/notesqml/notesqml.qml b/src/modules/notesqml/notesqml.qml index 374d9c399..7be5cffa9 100644 --- a/src/modules/notesqml/notesqml.qml +++ b/src/modules/notesqml/notesqml.qml @@ -2,19 +2,8 @@ * * Copyright 2020, Anke Boersma * Copyright 2020, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /* Some Calamares internals are available to all QML modules. diff --git a/src/modules/oemid/IDJob.cpp b/src/modules/oemid/IDJob.cpp index 16461b191..19ad85cc9 100644 --- a/src/modules/oemid/IDJob.cpp +++ b/src/modules/oemid/IDJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,52 +28,54 @@ #include #include -IDJob::IDJob(const QString& id, QObject* parent) +IDJob::IDJob( const QString& id, QObject* parent ) : Job( parent ) , m_batchIdentifier( id ) { } -QString IDJob::prettyName() const +QString +IDJob::prettyName() const { return tr( "OEM Batch Identifier" ); } -Calamares::JobResult IDJob::writeId( const QString& dirs, const QString& filename, const QString& contents ) +Calamares::JobResult +IDJob::writeId( const QString& dirs, const QString& filename, const QString& contents ) { if ( !QDir().mkpath( dirs ) ) { cError() << "Could not create directories" << dirs; - return Calamares::JobResult::error( - tr( "OEM Batch Identifier" ), - tr( "Could not create directories %1." ).arg( dirs ) ); + return Calamares::JobResult::error( tr( "OEM Batch Identifier" ), + tr( "Could not create directories %1." ).arg( dirs ) ); } QFile output( QDir( dirs ).filePath( filename ) ); if ( output.exists() ) + { cWarning() << "Existing OEM Batch ID" << output.fileName() << "overwritten."; + } if ( !output.open( QIODevice::WriteOnly ) ) { cError() << "Could not write to" << output.fileName(); - return Calamares::JobResult::error( - tr( "OEM Batch Identifier" ), - tr( "Could not open file %1." ).arg( output.fileName() ) ); + return Calamares::JobResult::error( tr( "OEM Batch Identifier" ), + tr( "Could not open file %1." ).arg( output.fileName() ) ); } if ( output.write( contents.toUtf8() ) < 0 ) { cError() << "Write error on" << output.fileName(); - return Calamares::JobResult::error( - tr( "OEM Batch Identifier" ), - tr( "Could not write to file %1." ).arg( output.fileName() ) ); + return Calamares::JobResult::error( tr( "OEM Batch Identifier" ), + tr( "Could not write to file %1." ).arg( output.fileName() ) ); } output.write( "\n" ); // Ignore error on this one return Calamares::JobResult::ok(); } -Calamares::JobResult IDJob::exec() +Calamares::JobResult +IDJob::exec() { cDebug() << "Setting OEM Batch ID to" << m_batchIdentifier; @@ -84,10 +87,11 @@ Calamares::JobResult IDJob::exec() // Don't bother translating internal errors if ( rootMount.isEmpty() && Calamares::Settings::instance()->doChroot() ) - return Calamares::JobResult::internalError( - "OEM Batch Identifier", - "No rootMountPoint is set, but a chroot is required. " - "Is there a module before oemid that sets up the partitions?", - Calamares::JobResult::InvalidConfiguration ); - return writeId( Calamares::Settings::instance()->doChroot() ? rootMount + targetDir : targetDir, targetFile, m_batchIdentifier ); + return Calamares::JobResult::internalError( "OEM Batch Identifier", + "No rootMountPoint is set, but a chroot is required. " + "Is there a module before oemid that sets up the partitions?", + Calamares::JobResult::InvalidConfiguration ); + return writeId( Calamares::Settings::instance()->doChroot() ? rootMount + targetDir : targetDir, + targetFile, + m_batchIdentifier ); } diff --git a/src/modules/oemid/IDJob.h b/src/modules/oemid/IDJob.h index 845a3f451..dd8bd5e24 100644 --- a/src/modules/oemid/IDJob.h +++ b/src/modules/oemid/IDJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,7 +37,7 @@ private: Calamares::JobResult writeId( const QString&, const QString&, const QString& ); QString m_batchIdentifier; -} ; +}; #endif diff --git a/src/modules/oemid/OEMViewStep.cpp b/src/modules/oemid/OEMViewStep.cpp index 8a12bd17c..85de722dc 100644 --- a/src/modules/oemid/OEMViewStep.cpp +++ b/src/modules/oemid/OEMViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,22 +39,18 @@ public: { m_ui->setupUi( this ); - CALAMARES_RETRANSLATE( - m_ui->retranslateUi( this ); - ) + CALAMARES_RETRANSLATE( m_ui->retranslateUi( this ); ) } virtual ~OEMPage() override; - + Ui_OEMPage* m_ui; -} ; +}; -OEMPage::~OEMPage() -{ -} +OEMPage::~OEMPage() {} -OEMViewStep::OEMViewStep(QObject* parent) +OEMViewStep::OEMViewStep( QObject* parent ) : Calamares::ViewStep( parent ) , m_widget( nullptr ) , m_visited( false ) @@ -63,86 +60,106 @@ OEMViewStep::OEMViewStep(QObject* parent) OEMViewStep::~OEMViewStep() { if ( m_widget && m_widget->parent() == nullptr ) + { m_widget->deleteLater(); + } } -bool OEMViewStep::isBackEnabled() const +bool +OEMViewStep::isBackEnabled() const { return true; } -bool OEMViewStep::isNextEnabled() const +bool +OEMViewStep::isNextEnabled() const { return true; } -bool OEMViewStep::isAtBeginning() const +bool +OEMViewStep::isAtBeginning() const { return true; } -bool OEMViewStep::isAtEnd() const +bool +OEMViewStep::isAtEnd() const { return true; } -static QString substitute( QString s ) +static QString +substitute( QString s ) { QString t_date = QStringLiteral( "@@DATE@@" ); if ( s.contains( t_date ) ) { auto date = QDate::currentDate(); - s = s.replace( t_date, date.toString( Qt::ISODate )); + s = s.replace( t_date, date.toString( Qt::ISODate ) ); } return s; } -void OEMViewStep::onActivate() +void +OEMViewStep::onActivate() { if ( !m_widget ) - (void) widget(); + { + (void)widget(); + } if ( !m_visited && m_widget ) + { m_widget->m_ui->batchIdentifier->setText( m_user_batchIdentifier ); + } m_visited = true; ViewStep::onActivate(); } -void OEMViewStep::onLeave() +void +OEMViewStep::onLeave() { m_user_batchIdentifier = m_widget->m_ui->batchIdentifier->text(); ViewStep::onLeave(); } -QString OEMViewStep::prettyName() const +QString +OEMViewStep::prettyName() const { return tr( "OEM Configuration" ); } -QString OEMViewStep::prettyStatus() const +QString +OEMViewStep::prettyStatus() const { return tr( "Set the OEM Batch Identifier to %1." ).arg( m_user_batchIdentifier ); } -QWidget * OEMViewStep::widget() +QWidget* +OEMViewStep::widget() { - if (!m_widget) + if ( !m_widget ) + { m_widget = new OEMPage; + } return m_widget; } -Calamares::JobList OEMViewStep::jobs() const +Calamares::JobList +OEMViewStep::jobs() const { return Calamares::JobList() << Calamares::job_ptr( new IDJob( m_user_batchIdentifier ) ); } -void OEMViewStep::setConfigurationMap(const QVariantMap& configurationMap) +void +OEMViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { m_conf_batchIdentifier = CalamaresUtils::getString( configurationMap, "batch-identifier" ); m_user_batchIdentifier = substitute( m_conf_batchIdentifier ); } -CALAMARES_PLUGIN_FACTORY_DEFINITION( OEMViewStepFactory, registerPlugin(); ) +CALAMARES_PLUGIN_FACTORY_DEFINITION( OEMViewStepFactory, registerPlugin< OEMViewStep >(); ) diff --git a/src/modules/oemid/OEMViewStep.h b/src/modules/oemid/OEMViewStep.h index 1f0e58915..342c62d60 100644 --- a/src/modules/oemid/OEMViewStep.h +++ b/src/modules/oemid/OEMViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/ItemAppData.cpp b/src/modules/packagechooser/ItemAppData.cpp index ed0ba9223..4adebb5c3 100644 --- a/src/modules/packagechooser/ItemAppData.cpp +++ b/src/modules/packagechooser/ItemAppData.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/ItemAppData.h b/src/modules/packagechooser/ItemAppData.h index 72617ff0c..c811ae4d5 100644 --- a/src/modules/packagechooser/ItemAppData.h +++ b/src/modules/packagechooser/ItemAppData.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/ItemAppStream.cpp b/src/modules/packagechooser/ItemAppStream.cpp index 83837a9ca..e397f8a15 100644 --- a/src/modules/packagechooser/ItemAppStream.cpp +++ b/src/modules/packagechooser/ItemAppStream.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/ItemAppStream.h b/src/modules/packagechooser/ItemAppStream.h index c44b84b06..cbfccdc90 100644 --- a/src/modules/packagechooser/ItemAppStream.h +++ b/src/modules/packagechooser/ItemAppStream.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/PackageChooserPage.cpp b/src/modules/packagechooser/PackageChooserPage.cpp index 16f50abab..ac59f929c 100644 --- a/src/modules/packagechooser/PackageChooserPage.cpp +++ b/src/modules/packagechooser/PackageChooserPage.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/PackageChooserPage.h b/src/modules/packagechooser/PackageChooserPage.h index b4ef2169b..a5ce6d2e5 100644 --- a/src/modules/packagechooser/PackageChooserPage.h +++ b/src/modules/packagechooser/PackageChooserPage.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/PackageChooserViewStep.cpp b/src/modules/packagechooser/PackageChooserViewStep.cpp index 759c6eeab..fb64727f7 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.cpp +++ b/src/modules/packagechooser/PackageChooserViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/PackageChooserViewStep.h b/src/modules/packagechooser/PackageChooserViewStep.h index 9e9087971..f74abe376 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.h +++ b/src/modules/packagechooser/PackageChooserViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/PackageModel.cpp b/src/modules/packagechooser/PackageModel.cpp index 12995fad5..dd8903fc9 100644 --- a/src/modules/packagechooser/PackageModel.cpp +++ b/src/modules/packagechooser/PackageModel.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/PackageModel.h b/src/modules/packagechooser/PackageModel.h index ee3b30185..2dff3834a 100644 --- a/src/modules/packagechooser/PackageModel.h +++ b/src/modules/packagechooser/PackageModel.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/Tests.cpp b/src/modules/packagechooser/Tests.cpp index da355dc96..0e9968814 100644 --- a/src/modules/packagechooser/Tests.cpp +++ b/src/modules/packagechooser/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -77,7 +78,8 @@ PackageChooserTests::testAppData() QCOMPARE( p1.description.get(), QStringLiteral( "Calamares is an installer program for Linux distributions." ) ); // .. but en_GB doesn't have an entry in description, so uses
    QCOMPARE( p1.description.get( QLocale( "en_GB" ) ), QStringLiteral( "Calamares Linux Installer" ) ); - QCOMPARE( p1.description.get( QLocale( "nl" ) ), QStringLiteral( "Calamares is een installatieprogramma voor Linux distributies." ) ); + QCOMPARE( p1.description.get( QLocale( "nl" ) ), + QStringLiteral( "Calamares is een installatieprogramma voor Linux distributies." ) ); QVERIFY( p1.screenshot.isNull() ); m.insert( "id", "calamares" ); @@ -85,7 +87,8 @@ PackageChooserTests::testAppData() PackageItem p2 = fromAppData( m ); QVERIFY( p2.isValid() ); QCOMPARE( p2.id, QStringLiteral( "calamares" ) ); - QCOMPARE( p2.description.get( QLocale( "nl" ) ), QStringLiteral( "Calamares is een installatieprogramma voor Linux distributies." ) ); + QCOMPARE( p2.description.get( QLocale( "nl" ) ), + QStringLiteral( "Calamares is een installatieprogramma voor Linux distributies." ) ); QVERIFY( !p2.screenshot.isNull() ); #endif } diff --git a/src/modules/packagechooser/Tests.h b/src/modules/packagechooser/Tests.h index 62efe92cc..716f930e3 100644 --- a/src/modules/packagechooser/Tests.h +++ b/src/modules/packagechooser/Tests.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/packagechooser/images/calamares.png.license b/src/modules/packagechooser/images/calamares.png.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/src/modules/packagechooser/images/calamares.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/packagechooser/images/no-selection.png.license b/src/modules/packagechooser/images/no-selection.png.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/src/modules/packagechooser/images/no-selection.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/modules/partition/README.md b/src/modules/partition/README.md index 3491b309b..cbebd589e 100644 --- a/src/modules/partition/README.md +++ b/src/modules/partition/README.md @@ -1,5 +1,11 @@ # Architecture + + ## Overview The heart of the module is the PartitionCoreModule class. It holds Qt models for diff --git a/src/modules/partition/core/BootLoaderModel.cpp b/src/modules/partition/core/BootLoaderModel.cpp index 10b88be76..13ce2a379 100644 --- a/src/modules/partition/core/BootLoaderModel.cpp +++ b/src/modules/partition/core/BootLoaderModel.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/BootLoaderModel.h b/src/modules/partition/core/BootLoaderModel.h index 8daa8ca04..1157879ef 100644 --- a/src/modules/partition/core/BootLoaderModel.h +++ b/src/modules/partition/core/BootLoaderModel.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/ColorUtils.cpp b/src/modules/partition/core/ColorUtils.cpp index d04c4110d..9b86cdb46 100644 --- a/src/modules/partition/core/ColorUtils.cpp +++ b/src/modules/partition/core/ColorUtils.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/ColorUtils.h b/src/modules/partition/core/ColorUtils.h index 3c65b75b2..ab4e86481 100644 --- a/src/modules/partition/core/ColorUtils.h +++ b/src/modules/partition/core/ColorUtils.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/Config.cpp b/src/modules/partition/core/Config.cpp index 086d87da5..00b896724 100644 --- a/src/modules/partition/core/Config.cpp +++ b/src/modules/partition/core/Config.cpp @@ -125,7 +125,8 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) m_swapChoices = getSwapChoices( configurationMap ); bool nameFound = false; // In the name table (ignored, falls back to first entry in table) - m_initialInstallChoice = PartitionActions::Choices::installChoiceNames().find( CalamaresUtils::getString( configurationMap, "initialPartitioningChoice" ), nameFound ); + m_initialInstallChoice = PartitionActions::Choices::installChoiceNames().find( + CalamaresUtils::getString( configurationMap, "initialPartitioningChoice" ), nameFound ); } void diff --git a/src/modules/partition/core/DeviceList.cpp b/src/modules/partition/core/DeviceList.cpp index 041801b9e..dfba17523 100644 --- a/src/modules/partition/core/DeviceList.cpp +++ b/src/modules/partition/core/DeviceList.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2018-2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/DeviceList.h b/src/modules/partition/core/DeviceList.h index 306d90739..986c6b05f 100644 --- a/src/modules/partition/core/DeviceList.h +++ b/src/modules/partition/core/DeviceList.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/DeviceModel.cpp b/src/modules/partition/core/DeviceModel.cpp index f881d265b..3e42ab029 100644 --- a/src/modules/partition/core/DeviceModel.cpp +++ b/src/modules/partition/core/DeviceModel.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2014, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/DeviceModel.h b/src/modules/partition/core/DeviceModel.h index 29d1598ad..a03405cb6 100644 --- a/src/modules/partition/core/DeviceModel.h +++ b/src/modules/partition/core/DeviceModel.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2017, 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/KPMHelpers.cpp b/src/modules/partition/core/KPMHelpers.cpp index 730d1d9af..ba8238531 100644 --- a/src/modules/partition/core/KPMHelpers.cpp +++ b/src/modules/partition/core/KPMHelpers.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * Copyright 2018-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/KPMHelpers.h b/src/modules/partition/core/KPMHelpers.h index 326993362..743dcc790 100644 --- a/src/modules/partition/core/KPMHelpers.h +++ b/src/modules/partition/core/KPMHelpers.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/OsproberEntry.h b/src/modules/partition/core/OsproberEntry.h index 1e1fd0eca..9313a6bb5 100644 --- a/src/modules/partition/core/OsproberEntry.h +++ b/src/modules/partition/core/OsproberEntry.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartUtils.cpp b/src/modules/partition/core/PartUtils.cpp index 4dd3dcbf3..1d5484671 100644 --- a/src/modules/partition/core/PartUtils.cpp +++ b/src/modules/partition/core/PartUtils.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2015-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * Copyright 2018-2019 Adriaan de Groot - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -459,7 +460,7 @@ isEfiBootable( const Partition* candidate ) while ( root && !root->isRoot() ) { root = root->parent(); - cDebug() << Logger::SubEntry << "moved towards root" << Logger::Pointer(root); + cDebug() << Logger::SubEntry << "moved towards root" << Logger::Pointer( root ); } // Strange case: no root found, no partition table node? @@ -469,7 +470,7 @@ isEfiBootable( const Partition* candidate ) } const PartitionTable* table = dynamic_cast< const PartitionTable* >( root ); - cDebug() << Logger::SubEntry << "partition table" << Logger::Pointer(table) << "type" + cDebug() << Logger::SubEntry << "partition table" << Logger::Pointer( table ) << "type" << ( table ? table->type() : PartitionTable::TableType::unknownTableType ); return table && ( table->type() == PartitionTable::TableType::gpt ) && flags.testFlag( KPM_PARTITION_FLAG( Boot ) ); } diff --git a/src/modules/partition/core/PartUtils.h b/src/modules/partition/core/PartUtils.h index 0db49d043..a56cb8a60 100644 --- a/src/modules/partition/core/PartUtils.h +++ b/src/modules/partition/core/PartUtils.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2018-2019 Adriaan de Groot - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionActions.cpp b/src/modules/partition/core/PartitionActions.cpp index cae5025bf..dba02318e 100644 --- a/src/modules/partition/core/PartitionActions.cpp +++ b/src/modules/partition/core/PartitionActions.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionActions.h b/src/modules/partition/core/PartitionActions.h index 6f4b41cc8..63dfccb11 100644 --- a/src/modules/partition/core/PartitionActions.h +++ b/src/modules/partition/core/PartitionActions.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index 8856778b3..370caebfb 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -1,10 +1,11 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot - * Copyright 2018, Caio Carvalho - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Caio Carvalho + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionCoreModule.h b/src/modules/partition/core/PartitionCoreModule.h index f88544ae8..b75f67d75 100644 --- a/src/modules/partition/core/PartitionCoreModule.h +++ b/src/modules/partition/core/PartitionCoreModule.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionInfo.cpp b/src/modules/partition/core/PartitionInfo.cpp index fe38bf2d6..415fdc5c1 100644 --- a/src/modules/partition/core/PartitionInfo.cpp +++ b/src/modules/partition/core/PartitionInfo.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionInfo.h b/src/modules/partition/core/PartitionInfo.h index 9f9cd2d1e..3ddbe192b 100644 --- a/src/modules/partition/core/PartitionInfo.h +++ b/src/modules/partition/core/PartitionInfo.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index 367b7487a..3df9b21c2 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot - * Copyright 2018-2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2018-2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionLayout.h b/src/modules/partition/core/PartitionLayout.h index da691d200..52bd96e42 100644 --- a/src/modules/partition/core/PartitionLayout.h +++ b/src/modules/partition/core/PartitionLayout.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2018-2019, Collabora Ltd - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2018-2019 Collabora Ltd + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionModel.cpp b/src/modules/partition/core/PartitionModel.cpp index 1135f5719..662e26032 100644 --- a/src/modules/partition/core/PartitionModel.cpp +++ b/src/modules/partition/core/PartitionModel.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2018-2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionModel.h b/src/modules/partition/core/PartitionModel.h index 7066aa5a5..9d1e40f20 100644 --- a/src/modules/partition/core/PartitionModel.h +++ b/src/modules/partition/core/PartitionModel.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2017, 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/BootInfoWidget.cpp b/src/modules/partition/gui/BootInfoWidget.cpp index 696628c37..d1df9ae33 100644 --- a/src/modules/partition/gui/BootInfoWidget.cpp +++ b/src/modules/partition/gui/BootInfoWidget.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2015-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,16 +25,16 @@ #include "utils/Retranslator.h" #include -#include #include +#include BootInfoWidget::BootInfoWidget( QWidget* parent ) : QWidget( parent ) , m_bootIcon( new QLabel ) , m_bootLabel( new QLabel ) { - m_bootIcon->setObjectName("bootInfoIcon"); - m_bootLabel->setObjectName("bootInfoLabel"); + m_bootIcon->setObjectName( "bootInfoIcon" ); + m_bootLabel->setObjectName( "bootInfoLabel" ); QHBoxLayout* mainLayout = new QHBoxLayout; setLayout( mainLayout ); @@ -46,16 +47,15 @@ BootInfoWidget::BootInfoWidget( QWidget* parent ) m_bootIcon->setMargin( 0 ); m_bootIcon->setFixedSize( iconSize ); - m_bootIcon->setPixmap( CalamaresUtils::defaultPixmap( CalamaresUtils::BootEnvironment, - CalamaresUtils::Original, - iconSize ) ); - + m_bootIcon->setPixmap( + CalamaresUtils::defaultPixmap( CalamaresUtils::BootEnvironment, CalamaresUtils::Original, iconSize ) ); + QFontMetrics fm = QFontMetrics( QFont() ); m_bootLabel->setMinimumWidth( fm.boundingRect( "BIOS" ).width() + CalamaresUtils::defaultFontHeight() / 2 ); m_bootLabel->setAlignment( Qt::AlignCenter ); QPalette palette; - palette.setBrush( QPalette::Foreground, QColor( "#4D4D4D" ) ); //dark grey + palette.setBrush( QPalette::Foreground, QColor( "#4D4D4D" ) ); //dark grey m_bootIcon->setAutoFillBackground( true ); m_bootLabel->setAutoFillBackground( true ); @@ -100,7 +100,6 @@ BootInfoWidget::retranslateUi() "This is automatic, unless " "you choose manual partitioning, in which case you must " "set it up on your own." ); - } m_bootLabel->setToolTip( bootToolTip ); } diff --git a/src/modules/partition/gui/BootInfoWidget.h b/src/modules/partition/gui/BootInfoWidget.h index 257b3904a..5865a3b9c 100644 --- a/src/modules/partition/gui/BootInfoWidget.h +++ b/src/modules/partition/gui/BootInfoWidget.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2015-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,4 +39,4 @@ private: QLabel* m_bootLabel; }; -#endif // BOOTINFOWIDGET_H +#endif // BOOTINFOWIDGET_H diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index d7b5e497e..b032065cf 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017-2019, Adriaan de Groot - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -59,16 +60,16 @@ #include #include #include +#include #include #include -#include #include -using PartitionActions::Choices::SwapChoice; -using CalamaresUtils::Partition::PartitionIterator; -using CalamaresUtils::Partition::isPartitionFreeSpace; -using CalamaresUtils::Partition::findPartitionByPath; using Calamares::PrettyRadioButton; +using CalamaresUtils::Partition::findPartitionByPath; +using CalamaresUtils::Partition::isPartitionFreeSpace; +using CalamaresUtils::Partition::PartitionIterator; +using PartitionActions::Choices::SwapChoice; /** * @brief ChoicePage::ChoicePage is the default constructor. Called on startup as part of @@ -107,7 +108,9 @@ ChoicePage::ChoicePage( Config* config, QWidget* parent ) m_allowManualPartitioning = gs->value( "allowManualPartitioning" ).toBool(); if ( FileSystem::typeForName( m_defaultFsType ) == FileSystem::Unknown ) + { m_defaultFsType = "ext4"; + } // Set up drives combo m_mainLayout->setDirection( QBoxLayout::TopToBottom ); @@ -134,12 +137,9 @@ ChoicePage::ChoicePage( Config* config, QWidget* parent ) CalamaresUtils::unmarginLayout( m_itemsLayout ); // Drive selector + preview - CALAMARES_RETRANSLATE( - retranslateUi( this ); - m_drivesLabel->setText( tr( "Select storage de&vice:" ) ); - m_previewBeforeLabel->setText( tr( "Current:" ) ); - m_previewAfterLabel->setText( tr( "After:" ) ); - ) + CALAMARES_RETRANSLATE( retranslateUi( this ); m_drivesLabel->setText( tr( "Select storage de&vice:" ) ); + m_previewBeforeLabel->setText( tr( "Current:" ) ); + m_previewAfterLabel->setText( tr( "After:" ) ); ) m_previewBeforeFrame->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Expanding ); m_previewAfterFrame->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Expanding ); @@ -151,8 +151,7 @@ ChoicePage::ChoicePage( Config* config, QWidget* parent ) } -ChoicePage::~ChoicePage() -{} +ChoicePage::~ChoicePage() {} void @@ -165,9 +164,7 @@ ChoicePage::init( PartitionCoreModule* core ) // We need to do this because a PCM revert invalidates the deviceModel. - connect( core, &PartitionCoreModule::reverted, - this, [=] - { + connect( core, &PartitionCoreModule::reverted, this, [=] { m_drivesCombo->setModel( core->deviceModel() ); m_drivesCombo->setCurrentIndex( m_lastSelectedDeviceIndex ); } ); @@ -175,12 +172,11 @@ ChoicePage::init( PartitionCoreModule* core ) connect( m_drivesCombo, static_cast< void ( QComboBox::* )( int ) >( &QComboBox::currentIndexChanged ), - this, &ChoicePage::applyDeviceChoice ); + this, + &ChoicePage::applyDeviceChoice ); - connect( m_encryptWidget, &EncryptWidget::stateChanged, - this, &ChoicePage::onEncryptWidgetStateChanged ); - connect( m_reuseHomeCheckBox, &QCheckBox::stateChanged, - this, &ChoicePage::onHomeCheckBoxStateChanged ); + connect( m_encryptWidget, &EncryptWidget::stateChanged, this, &ChoicePage::onEncryptWidgetStateChanged ); + connect( m_reuseHomeCheckBox, &QCheckBox::stateChanged, this, &ChoicePage::onHomeCheckBoxStateChanged ); ChoicePage::applyDeviceChoice(); } @@ -195,13 +191,21 @@ static inline QComboBox* createCombo( const QSet< SwapChoice >& s, SwapChoice dflt ) { QComboBox* box = new QComboBox; - for ( SwapChoice c : { SwapChoice::NoSwap, SwapChoice::SmallSwap, SwapChoice::FullSwap, SwapChoice::ReuseSwap, SwapChoice::SwapFile } ) + for ( SwapChoice c : { SwapChoice::NoSwap, + SwapChoice::SmallSwap, + SwapChoice::FullSwap, + SwapChoice::ReuseSwap, + SwapChoice::SwapFile } ) if ( s.contains( c ) ) + { box->addItem( QString(), c ); + } int dfltIndex = box->findData( dflt ); if ( dfltIndex >= 0 ) + { box->setCurrentIndex( dfltIndex ); + } return box; } @@ -233,30 +237,26 @@ ChoicePage::setupChoices() // 3) Manual // TBD: upgrade option? - QSize iconSize( CalamaresUtils::defaultIconSize().width() * 2, - CalamaresUtils::defaultIconSize().height() * 2 ); + QSize iconSize( CalamaresUtils::defaultIconSize().width() * 2, CalamaresUtils::defaultIconSize().height() * 2 ); m_grp = new QButtonGroup( this ); m_alongsideButton = new PrettyRadioButton; m_alongsideButton->setIconSize( iconSize ); - m_alongsideButton->setIcon( CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionAlongside, - CalamaresUtils::Original, - iconSize ) ); + m_alongsideButton->setIcon( + CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionAlongside, CalamaresUtils::Original, iconSize ) ); m_alongsideButton->addToGroup( m_grp, InstallChoice::Alongside ); m_eraseButton = new PrettyRadioButton; m_eraseButton->setIconSize( iconSize ); - m_eraseButton->setIcon( CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionEraseAuto, - CalamaresUtils::Original, - iconSize ) ); + m_eraseButton->setIcon( + CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionEraseAuto, CalamaresUtils::Original, iconSize ) ); m_eraseButton->addToGroup( m_grp, InstallChoice::Erase ); m_replaceButton = new PrettyRadioButton; m_replaceButton->setIconSize( iconSize ); - m_replaceButton->setIcon( CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionReplaceOs, - CalamaresUtils::Original, - iconSize ) ); + m_replaceButton->setIcon( + CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionReplaceOs, CalamaresUtils::Original, iconSize ) ); m_replaceButton->addToGroup( m_grp, InstallChoice::Replace ); // Fill up swap options @@ -273,17 +273,14 @@ ChoicePage::setupChoices() m_somethingElseButton = new PrettyRadioButton; m_somethingElseButton->setIconSize( iconSize ); - m_somethingElseButton->setIcon( CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionManual, - CalamaresUtils::Original, - iconSize ) ); + m_somethingElseButton->setIcon( + CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionManual, CalamaresUtils::Original, iconSize ) ); m_itemsLayout->addWidget( m_somethingElseButton ); m_somethingElseButton->addToGroup( m_grp, InstallChoice::Manual ); m_itemsLayout->addStretch(); - connect( m_grp, QOverload::of( &QButtonGroup::buttonToggled ), - this, [ this ]( int id, bool checked ) - { + connect( m_grp, QOverload< int, bool >::of( &QButtonGroup::buttonToggled ), this, [this]( int id, bool checked ) { if ( checked ) // An action was picked. { m_choice = static_cast< InstallChoice >( id ); @@ -291,10 +288,11 @@ ChoicePage::setupChoices() emit actionChosen(); } - else // An action was unpicked, either on its own or because of another selection. + else // An action was unpicked, either on its own or because of another selection. { if ( m_grp->checkedButton() == nullptr ) // If no other action is chosen, we must - { // set m_choice to NoChoice and reset previews. + { + // set m_choice to NoChoice and reset previews. m_choice = InstallChoice::NoChoice; updateNextEnabled(); @@ -307,17 +305,16 @@ ChoicePage::setupChoices() m_rightLayout->setStretchFactor( m_previewBeforeFrame, 0 ); m_rightLayout->setStretchFactor( m_previewAfterFrame, 0 ); - connect( this, &ChoicePage::actionChosen, - this, &ChoicePage::onActionChanged ); + connect( this, &ChoicePage::actionChosen, this, &ChoicePage::onActionChanged ); if ( m_eraseSwapChoiceComboBox ) - connect( m_eraseSwapChoiceComboBox, QOverload::of(&QComboBox::currentIndexChanged), - this, &ChoicePage::onEraseSwapChoiceChanged ); + connect( m_eraseSwapChoiceComboBox, + QOverload< int >::of( &QComboBox::currentIndexChanged ), + this, + &ChoicePage::onEraseSwapChoiceChanged ); - CALAMARES_RETRANSLATE( - m_somethingElseButton->setText( tr( "Manual partitioning
    " - "You can create or resize partitions yourself." ) ); - updateSwapChoicesTr( m_eraseSwapChoiceComboBox ); - ) + CALAMARES_RETRANSLATE( m_somethingElseButton->setText( tr( "Manual partitioning
    " + "You can create or resize partitions yourself." ) ); + updateSwapChoicesTr( m_eraseSwapChoiceComboBox ); ) } @@ -331,9 +328,8 @@ Device* ChoicePage::selectedDevice() { Device* currentDevice = nullptr; - currentDevice = m_core->deviceModel()->deviceForIndex( - m_core->deviceModel()->index( - m_drivesCombo->currentIndex() ) ); + currentDevice + = m_core->deviceModel()->deviceForIndex( m_core->deviceModel()->index( m_drivesCombo->currentIndex() ) ); return currentDevice; } @@ -367,16 +363,13 @@ ChoicePage::applyDeviceChoice() if ( m_core->isDirty() ) { - ScanningDialog::run( QtConcurrent::run( [ = ] - { - QMutexLocker locker( &m_coreMutex ); - m_core->revertAllDevices(); - } ), - [ this ] - { - continueApplyDeviceChoice(); - }, - this ); + ScanningDialog::run( + QtConcurrent::run( [=] { + QMutexLocker locker( &m_coreMutex ); + m_core->revertAllDevices(); + } ), + [this] { continueApplyDeviceChoice(); }, + this ); } else { @@ -426,7 +419,8 @@ ChoicePage::onEraseSwapChoiceChanged() { if ( m_eraseSwapChoiceComboBox ) { - m_eraseSwapChoice = static_cast( m_eraseSwapChoiceComboBox->currentData().toInt() ); + m_eraseSwapChoice + = static_cast< PartitionActions::Choices::SwapChoice >( m_eraseSwapChoiceComboBox->currentData().toInt() ); onActionChanged(); } } @@ -434,85 +428,85 @@ ChoicePage::onEraseSwapChoiceChanged() void ChoicePage::applyActionChoice( ChoicePage::InstallChoice choice ) { - m_beforePartitionBarsView->selectionModel()-> - disconnect( SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ) ); + m_beforePartitionBarsView->selectionModel()->disconnect( SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ) ); m_beforePartitionBarsView->selectionModel()->clearSelection(); m_beforePartitionBarsView->selectionModel()->clearCurrentIndex(); switch ( choice ) { case InstallChoice::Erase: + { + auto gs = Calamares::JobQueue::instance()->globalStorage(); + + PartitionActions::Choices::AutoPartitionOptions options { gs->value( "defaultFileSystemType" ).toString(), + m_encryptWidget->passphrase(), + gs->value( "efiSystemPartition" ).toString(), + CalamaresUtils::GiBtoBytes( + gs->value( "requiredStorageGiB" ).toDouble() ), + m_eraseSwapChoice }; + + if ( m_core->isDirty() ) { - auto gs = Calamares::JobQueue::instance()->globalStorage(); - - PartitionActions::Choices::AutoPartitionOptions options { - gs->value( "defaultFileSystemType" ).toString(), - m_encryptWidget->passphrase(), - gs->value( "efiSystemPartition" ).toString(), - CalamaresUtils::GiBtoBytes( gs->value( "requiredStorageGiB" ).toDouble() ), - m_eraseSwapChoice - }; - - if ( m_core->isDirty() ) - { - ScanningDialog::run( QtConcurrent::run( [ = ] - { + ScanningDialog::run( + QtConcurrent::run( [=] { QMutexLocker locker( &m_coreMutex ); m_core->revertDevice( selectedDevice() ); } ), - [ = ] - { + [=] { PartitionActions::doAutopartition( m_core, selectedDevice(), options ); emit deviceChosen(); }, this ); - } - else - { - PartitionActions::doAutopartition( m_core, selectedDevice(), options ); - emit deviceChosen(); - } } - break; + else + { + PartitionActions::doAutopartition( m_core, selectedDevice(), options ); + emit deviceChosen(); + } + } + break; case InstallChoice::Replace: if ( m_core->isDirty() ) { - ScanningDialog::run( QtConcurrent::run( [ = ] - { - QMutexLocker locker( &m_coreMutex ); - m_core->revertDevice( selectedDevice() ); - } ), - []{}, - this ); + ScanningDialog::run( + QtConcurrent::run( [=] { + QMutexLocker locker( &m_coreMutex ); + m_core->revertDevice( selectedDevice() ); + } ), + [] {}, + this ); } updateNextEnabled(); - connect( m_beforePartitionBarsView->selectionModel(), SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ), - this, SLOT( onPartitionToReplaceSelected( QModelIndex, QModelIndex ) ), + connect( m_beforePartitionBarsView->selectionModel(), + SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ), + this, + SLOT( onPartitionToReplaceSelected( QModelIndex, QModelIndex ) ), Qt::UniqueConnection ); break; case InstallChoice::Alongside: if ( m_core->isDirty() ) { - ScanningDialog::run( QtConcurrent::run( [ = ] - { - QMutexLocker locker( &m_coreMutex ); - m_core->revertDevice( selectedDevice() ); - } ), - [this] - { - // We need to reupdate after reverting because the splitter widget is - // not a true view. - updateActionChoicePreview( currentChoice() ); - updateNextEnabled(); - }, - this ); + ScanningDialog::run( + QtConcurrent::run( [=] { + QMutexLocker locker( &m_coreMutex ); + m_core->revertDevice( selectedDevice() ); + } ), + [this] { + // We need to reupdate after reverting because the splitter widget is + // not a true view. + updateActionChoicePreview( currentChoice() ); + updateNextEnabled(); + }, + this ); } updateNextEnabled(); - connect( m_beforePartitionBarsView->selectionModel(), SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ), - this, SLOT( doAlongsideSetupSplitter( QModelIndex, QModelIndex ) ), + connect( m_beforePartitionBarsView->selectionModel(), + SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ), + this, + SLOT( doAlongsideSetupSplitter( QModelIndex, QModelIndex ) ), Qt::UniqueConnection ); break; case InstallChoice::NoChoice: @@ -524,19 +518,24 @@ ChoicePage::applyActionChoice( ChoicePage::InstallChoice choice ) void -ChoicePage::doAlongsideSetupSplitter( const QModelIndex& current, - const QModelIndex& previous ) +ChoicePage::doAlongsideSetupSplitter( const QModelIndex& current, const QModelIndex& previous ) { Q_UNUSED( previous ) if ( !current.isValid() ) + { return; + } if ( !m_afterPartitionSplitterWidget ) + { return; + } const PartitionModel* modl = qobject_cast< const PartitionModel* >( current.model() ); if ( !modl ) + { return; + } Partition* part = modl->partitionForIndex( current ); if ( !part ) @@ -545,21 +544,20 @@ ChoicePage::doAlongsideSetupSplitter( const QModelIndex& current, return; } - double requiredStorageGB = Calamares::JobQueue::instance() - ->globalStorage() - ->value( "requiredStorageGiB" ) - .toDouble(); + double requiredStorageGB + = Calamares::JobQueue::instance()->globalStorage()->value( "requiredStorageGiB" ).toDouble(); qint64 requiredStorageB = CalamaresUtils::GiBtoBytes( requiredStorageGB + 0.1 + 2.0 ); - m_afterPartitionSplitterWidget->setSplitPartition( - part->partitionPath(), - qRound64( part->used() * 1.1 ), - part->capacity() - requiredStorageB, - part->capacity() / 2 ); + m_afterPartitionSplitterWidget->setSplitPartition( part->partitionPath(), + qRound64( part->used() * 1.1 ), + part->capacity() - requiredStorageB, + part->capacity() / 2 ); if ( m_isEfi ) + { setupEfiSystemPartitionSelector(); + } cDebug() << "Partition selected for Alongside."; @@ -573,20 +571,17 @@ ChoicePage::onEncryptWidgetStateChanged() EncryptWidget::Encryption state = m_encryptWidget->state(); if ( m_choice == InstallChoice::Erase ) { - if ( state == EncryptWidget::Encryption::Confirmed || - state == EncryptWidget::Encryption::Disabled ) + if ( state == EncryptWidget::Encryption::Confirmed || state == EncryptWidget::Encryption::Disabled ) + { applyActionChoice( m_choice ); + } } else if ( m_choice == InstallChoice::Replace ) { - if ( m_beforePartitionBarsView && - m_beforePartitionBarsView->selectionModel()->currentIndex().isValid() && - ( state == EncryptWidget::Encryption::Confirmed || - state == EncryptWidget::Encryption::Disabled ) ) + if ( m_beforePartitionBarsView && m_beforePartitionBarsView->selectionModel()->currentIndex().isValid() + && ( state == EncryptWidget::Encryption::Confirmed || state == EncryptWidget::Encryption::Disabled ) ) { - doReplaceSelectedPartition( m_beforePartitionBarsView-> - selectionModel()-> - currentIndex() ); + doReplaceSelectedPartition( m_beforePartitionBarsView->selectionModel()->currentIndex() ); } } updateNextEnabled(); @@ -596,12 +591,10 @@ ChoicePage::onEncryptWidgetStateChanged() void ChoicePage::onHomeCheckBoxStateChanged() { - if ( currentChoice() == InstallChoice::Replace && - m_beforePartitionBarsView->selectionModel()->currentIndex().isValid() ) + if ( currentChoice() == InstallChoice::Replace + && m_beforePartitionBarsView->selectionModel()->currentIndex().isValid() ) { - doReplaceSelectedPartition( m_beforePartitionBarsView-> - selectionModel()-> - currentIndex() ); + doReplaceSelectedPartition( m_beforePartitionBarsView->selectionModel()->currentIndex() ); } } @@ -610,7 +603,9 @@ void ChoicePage::onLeave() { if ( m_choice == InstallChoice::Alongside ) + { doAlongsideApply(); + } if ( m_isEfi && ( m_choice == InstallChoice::Alongside || m_choice == InstallChoice::Replace ) ) { @@ -618,27 +613,22 @@ ChoicePage::onLeave() if ( efiSystemPartitions.count() == 1 ) { PartitionInfo::setMountPoint( - efiSystemPartitions.first(), - Calamares::JobQueue::instance()-> - globalStorage()-> - value( "efiSystemPartition" ).toString() ); + efiSystemPartitions.first(), + Calamares::JobQueue::instance()->globalStorage()->value( "efiSystemPartition" ).toString() ); } else if ( efiSystemPartitions.count() > 1 && m_efiComboBox ) { PartitionInfo::setMountPoint( - efiSystemPartitions.at( m_efiComboBox->currentIndex() ), - Calamares::JobQueue::instance()-> - globalStorage()-> - value( "efiSystemPartition" ).toString() ); + efiSystemPartitions.at( m_efiComboBox->currentIndex() ), + Calamares::JobQueue::instance()->globalStorage()->value( "efiSystemPartition" ).toString() ); } else { - cError() << "cannot set up EFI system partition.\nESP count:" - << efiSystemPartitions.count() << "\nm_efiComboBox:" - << m_efiComboBox; + cError() << "cannot set up EFI system partition.\nESP count:" << efiSystemPartitions.count() + << "\nm_efiComboBox:" << m_efiComboBox; } } - else // installPath is then passed to the bootloader module for MBR setup + else // installPath is then passed to the bootloader module for MBR setup { if ( !m_isEfi ) { @@ -646,15 +636,21 @@ ChoicePage::onLeave() { auto d_p = selectedDevice(); if ( d_p ) + { m_core->setBootLoaderInstallPath( d_p->deviceNode() ); + } else + { cWarning() << "No device selected for bootloader."; + } } else { QVariant var = m_bootloaderComboBox->currentData( BootLoaderModel::BootLoaderPathRole ); if ( !var.isValid() ) + { return; + } m_core->setBootLoaderInstallPath( var.toString() ); } } @@ -666,13 +662,14 @@ void ChoicePage::doAlongsideApply() { Q_ASSERT( m_afterPartitionSplitterWidget->splitPartitionSize() >= 0 ); - Q_ASSERT( m_afterPartitionSplitterWidget->newPartitionSize() >= 0 ); + Q_ASSERT( m_afterPartitionSplitterWidget->newPartitionSize() >= 0 ); QMutexLocker locker( &m_coreMutex ); - QString path = m_beforePartitionBarsView-> - selectionModel()-> - currentIndex().data( PartitionModel::PartitionPathRole ).toString(); + QString path = m_beforePartitionBarsView->selectionModel() + ->currentIndex() + .data( PartitionModel::PartitionPathRole ) + .toString(); DeviceModel* dm = m_core->deviceModel(); for ( int i = 0; i < dm->rowCount(); ++i ) @@ -683,15 +680,16 @@ ChoicePage::doAlongsideApply() { qint64 firstSector = candidate->firstSector(); qint64 oldLastSector = candidate->lastSector(); - qint64 newLastSector = firstSector + - m_afterPartitionSplitterWidget->splitPartitionSize() / - dev->logicalSize(); + qint64 newLastSector + = firstSector + m_afterPartitionSplitterWidget->splitPartitionSize() / dev->logicalSize(); m_core->resizePartition( dev, candidate, firstSector, newLastSector ); - m_core->layoutApply( dev, newLastSector + 2, oldLastSector, - m_encryptWidget->passphrase(), candidate->parent(), - candidate->roles() - ); + m_core->layoutApply( dev, + newLastSector + 2, + oldLastSector, + m_encryptWidget->passphrase(), + candidate->parent(), + candidate->roles() ); m_core->dumpQueue(); break; @@ -701,12 +699,13 @@ ChoicePage::doAlongsideApply() void -ChoicePage::onPartitionToReplaceSelected( const QModelIndex& current, - const QModelIndex& previous ) +ChoicePage::onPartitionToReplaceSelected( const QModelIndex& current, const QModelIndex& previous ) { Q_UNUSED( previous ) if ( !current.isValid() ) + { return; + } // Reset state on selection regardless of whether this will be used. m_reuseHomeCheckBox->setChecked( false ); @@ -719,111 +718,114 @@ void ChoicePage::doReplaceSelectedPartition( const QModelIndex& current ) { if ( !current.isValid() ) + { return; + } QString* homePartitionPath = new QString(); bool doReuseHomePartition = m_reuseHomeCheckBox->isChecked(); // NOTE: using by-ref captures because we need to write homePartitionPath and // doReuseHomePartition *after* the device revert, for later use. - ScanningDialog::run( QtConcurrent::run( - [ this, current ]( QString* homePartitionPath, bool doReuseHomePartition ) - { - QMutexLocker locker( &m_coreMutex ); + ScanningDialog::run( + QtConcurrent::run( + [this, current]( QString* homePartitionPath, bool doReuseHomePartition ) { + QMutexLocker locker( &m_coreMutex ); - if ( m_core->isDirty() ) - { - m_core->revertDevice( selectedDevice() ); - } - - // if the partition is unallocated(free space), we don't replace it but create new one - // with the same first and last sector - Partition* selectedPartition = - static_cast< Partition* >( current.data( PartitionModel::PartitionPtrRole ) - .value< void* >() ); - if ( isPartitionFreeSpace( selectedPartition ) ) - { - //NOTE: if the selected partition is free space, we don't deal with - // a separate /home partition at all because there's no existing - // rootfs to read it from. - PartitionRole newRoles = PartitionRole( PartitionRole::Primary ); - PartitionNode* newParent = selectedDevice()->partitionTable(); - - if ( selectedPartition->parent() ) - { - Partition* parent = dynamic_cast< Partition* >( selectedPartition->parent() ); - if ( parent && parent->roles().has( PartitionRole::Extended ) ) + if ( m_core->isDirty() ) { - newRoles = PartitionRole( PartitionRole::Logical ); - newParent = findPartitionByPath( { selectedDevice() }, parent->partitionPath() ); + m_core->revertDevice( selectedDevice() ); } - } - m_core->layoutApply( selectedDevice(), selectedPartition->firstSector(), - selectedPartition->lastSector(), - m_encryptWidget->passphrase(), newParent, newRoles - ); - } - else - { - // We can't use the PartitionPtrRole because we need to make changes to the - // main DeviceModel, not the immutable copy. - QString partPath = current.data( PartitionModel::PartitionPathRole ).toString(); - selectedPartition = findPartitionByPath( { selectedDevice() }, - partPath ); - if ( selectedPartition ) - { - // Find out is the selected partition has a rootfs. If yes, then make the - // m_reuseHomeCheckBox visible and set its text to something meaningful. - homePartitionPath->clear(); - for ( const OsproberEntry& osproberEntry : m_core->osproberEntries() ) - if ( osproberEntry.path == partPath ) - *homePartitionPath = osproberEntry.homePath; - if ( homePartitionPath->isEmpty() ) - doReuseHomePartition = false; - - Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); - - PartitionActions::doReplacePartition( - m_core, - selectedDevice(), - selectedPartition, - { - gs->value( "defaultFileSystemType" ).toString(), - m_encryptWidget->passphrase() - } ); - Partition* homePartition = findPartitionByPath( { selectedDevice() }, - *homePartitionPath ); - - if ( homePartition && doReuseHomePartition ) + // if the partition is unallocated(free space), we don't replace it but create new one + // with the same first and last sector + Partition* selectedPartition + = static_cast< Partition* >( current.data( PartitionModel::PartitionPtrRole ).value< void* >() ); + if ( isPartitionFreeSpace( selectedPartition ) ) { - PartitionInfo::setMountPoint( homePartition, "/home" ); - gs->insert( "reuseHome", true ); + //NOTE: if the selected partition is free space, we don't deal with + // a separate /home partition at all because there's no existing + // rootfs to read it from. + PartitionRole newRoles = PartitionRole( PartitionRole::Primary ); + PartitionNode* newParent = selectedDevice()->partitionTable(); + + if ( selectedPartition->parent() ) + { + Partition* parent = dynamic_cast< Partition* >( selectedPartition->parent() ); + if ( parent && parent->roles().has( PartitionRole::Extended ) ) + { + newRoles = PartitionRole( PartitionRole::Logical ); + newParent = findPartitionByPath( { selectedDevice() }, parent->partitionPath() ); + } + } + + m_core->layoutApply( selectedDevice(), + selectedPartition->firstSector(), + selectedPartition->lastSector(), + m_encryptWidget->passphrase(), + newParent, + newRoles ); } else { - gs->insert( "reuseHome", false ); + // We can't use the PartitionPtrRole because we need to make changes to the + // main DeviceModel, not the immutable copy. + QString partPath = current.data( PartitionModel::PartitionPathRole ).toString(); + selectedPartition = findPartitionByPath( { selectedDevice() }, partPath ); + if ( selectedPartition ) + { + // Find out is the selected partition has a rootfs. If yes, then make the + // m_reuseHomeCheckBox visible and set its text to something meaningful. + homePartitionPath->clear(); + for ( const OsproberEntry& osproberEntry : m_core->osproberEntries() ) + if ( osproberEntry.path == partPath ) + { + *homePartitionPath = osproberEntry.homePath; + } + if ( homePartitionPath->isEmpty() ) + { + doReuseHomePartition = false; + } + + Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); + + PartitionActions::doReplacePartition( + m_core, + selectedDevice(), + selectedPartition, + { gs->value( "defaultFileSystemType" ).toString(), m_encryptWidget->passphrase() } ); + Partition* homePartition = findPartitionByPath( { selectedDevice() }, *homePartitionPath ); + + if ( homePartition && doReuseHomePartition ) + { + PartitionInfo::setMountPoint( homePartition, "/home" ); + gs->insert( "reuseHome", true ); + } + else + { + gs->insert( "reuseHome", false ); + } + } } - } - } - }, homePartitionPath, doReuseHomePartition ), - [ = ] - { - m_reuseHomeCheckBox->setVisible( !homePartitionPath->isEmpty() ); - if ( !homePartitionPath->isEmpty() ) - m_reuseHomeCheckBox->setText( tr( "Reuse %1 as home partition for %2." ) - .arg( *homePartitionPath ) - .arg( Calamares::Branding::instance()->shortProductName() ) ); - delete homePartitionPath; + }, + homePartitionPath, + doReuseHomePartition ), + [=] { + m_reuseHomeCheckBox->setVisible( !homePartitionPath->isEmpty() ); + if ( !homePartitionPath->isEmpty() ) + m_reuseHomeCheckBox->setText( tr( "Reuse %1 as home partition for %2." ) + .arg( *homePartitionPath ) + .arg( Calamares::Branding::instance()->shortProductName() ) ); + delete homePartitionPath; - if ( m_isEfi ) - setupEfiSystemPartitionSelector(); + if ( m_isEfi ) + setupEfiSystemPartitionSelector(); - updateNextEnabled(); - if ( !m_bootloaderComboBox.isNull() && - m_bootloaderComboBox->currentIndex() < 0 ) - m_bootloaderComboBox->setCurrentIndex( m_lastSelectedDeviceIndex ); - }, this ); + updateNextEnabled(); + if ( !m_bootloaderComboBox.isNull() && m_bootloaderComboBox->currentIndex() < 0 ) + m_bootloaderComboBox->setCurrentIndex( m_lastSelectedDeviceIndex ); + }, + this ); } @@ -847,17 +849,19 @@ ChoicePage::updateDeviceStatePreview() auto layout = m_previewBeforeFrame->layout(); if ( layout ) + { layout->deleteLater(); // Doesn't like nullptr + } layout = new QVBoxLayout; m_previewBeforeFrame->setLayout( layout ); CalamaresUtils::unmarginLayout( layout ); layout->setSpacing( 6 ); - PartitionBarsView::NestedPartitionsMode mode = Calamares::JobQueue::instance()->globalStorage()-> - value( "drawNestedPartitions" ).toBool() ? - PartitionBarsView::DrawNestedPartitions : - PartitionBarsView::NoNestedPartitions; + PartitionBarsView::NestedPartitionsMode mode + = Calamares::JobQueue::instance()->globalStorage()->value( "drawNestedPartitions" ).toBool() + ? PartitionBarsView::DrawNestedPartitions + : PartitionBarsView::NoNestedPartitions; m_beforePartitionBarsView = new PartitionBarsView( m_previewBeforeFrame ); m_beforePartitionBarsView->setNestedPartitionsMode( mode ); m_beforePartitionLabelsView = new PartitionLabelsView( m_previewBeforeFrame ); @@ -875,7 +879,9 @@ ChoicePage::updateDeviceStatePreview() auto sm = m_beforePartitionLabelsView->selectionModel(); m_beforePartitionLabelsView->setSelectionModel( m_beforePartitionBarsView->selectionModel() ); if ( sm ) + { sm->deleteLater(); + } switch ( m_choice ) { @@ -914,17 +920,19 @@ ChoicePage::updateActionChoicePreview( ChoicePage::InstallChoice choice ) auto oldlayout = m_previewAfterFrame->layout(); if ( oldlayout ) + { oldlayout->deleteLater(); + } QVBoxLayout* layout = new QVBoxLayout; m_previewAfterFrame->setLayout( layout ); CalamaresUtils::unmarginLayout( layout ); layout->setSpacing( 6 ); - PartitionBarsView::NestedPartitionsMode mode = Calamares::JobQueue::instance()->globalStorage()-> - value( "drawNestedPartitions" ).toBool() ? - PartitionBarsView::DrawNestedPartitions : - PartitionBarsView::NoNestedPartitions; + PartitionBarsView::NestedPartitionsMode mode + = Calamares::JobQueue::instance()->globalStorage()->value( "drawNestedPartitions" ).toBool() + ? PartitionBarsView::DrawNestedPartitions + : PartitionBarsView::NoNestedPartitions; m_reuseHomeCheckBox->hide(); Calamares::JobQueue::instance()->globalStorage()->insert( "reuseHome", false ); @@ -932,136 +940,142 @@ ChoicePage::updateActionChoicePreview( ChoicePage::InstallChoice choice ) switch ( choice ) { case InstallChoice::Alongside: + { + if ( m_enableEncryptionWidget ) { - if ( m_enableEncryptionWidget ) - m_encryptWidget->show(); - m_previewBeforeLabel->setText( tr( "Current:" ) ); - m_selectLabel->setText( tr( "Select a partition to shrink, " - "then drag the bottom bar to resize" ) ); - m_selectLabel->show(); + m_encryptWidget->show(); + } + m_previewBeforeLabel->setText( tr( "Current:" ) ); + m_selectLabel->setText( tr( "Select a partition to shrink, " + "then drag the bottom bar to resize" ) ); + m_selectLabel->show(); - m_afterPartitionSplitterWidget = new PartitionSplitterWidget( m_previewAfterFrame ); - m_afterPartitionSplitterWidget->init( selectedDevice(), mode == PartitionBarsView::DrawNestedPartitions ); - layout->addWidget( m_afterPartitionSplitterWidget ); + m_afterPartitionSplitterWidget = new PartitionSplitterWidget( m_previewAfterFrame ); + m_afterPartitionSplitterWidget->init( selectedDevice(), mode == PartitionBarsView::DrawNestedPartitions ); + layout->addWidget( m_afterPartitionSplitterWidget ); - QLabel* sizeLabel = new QLabel( m_previewAfterFrame ); - layout->addWidget( sizeLabel ); - sizeLabel->setWordWrap( true ); - connect( m_afterPartitionSplitterWidget, &PartitionSplitterWidget::partitionResized, this, - [ this, sizeLabel ]( const QString& path, qint64 size, qint64 sizeNext ) + QLabel* sizeLabel = new QLabel( m_previewAfterFrame ); + layout->addWidget( sizeLabel ); + sizeLabel->setWordWrap( true ); + connect( m_afterPartitionSplitterWidget, + &PartitionSplitterWidget::partitionResized, + this, + [this, sizeLabel]( const QString& path, qint64 size, qint64 sizeNext ) { + Q_UNUSED( path ) + sizeLabel->setText( + tr( "%1 will be shrunk to %2MiB and a new " + "%3MiB partition will be created for %4." ) + .arg( m_beforePartitionBarsView->selectionModel()->currentIndex().data().toString() ) + .arg( CalamaresUtils::BytesToMiB( size ) ) + .arg( CalamaresUtils::BytesToMiB( sizeNext ) ) + .arg( Calamares::Branding::instance()->shortProductName() ) ); + } ); + + m_previewAfterFrame->show(); + m_previewAfterLabel->show(); + + SelectionFilter filter = [this]( const QModelIndex& index ) { + return PartUtils::canBeResized( + static_cast< Partition* >( index.data( PartitionModel::PartitionPtrRole ).value< void* >() ) ); + }; + m_beforePartitionBarsView->setSelectionFilter( filter ); + m_beforePartitionLabelsView->setSelectionFilter( filter ); + + break; + } + case InstallChoice::Erase: + case InstallChoice::Replace: + { + if ( m_enableEncryptionWidget ) + { + m_encryptWidget->show(); + } + m_previewBeforeLabel->setText( tr( "Current:" ) ); + m_afterPartitionBarsView = new PartitionBarsView( m_previewAfterFrame ); + m_afterPartitionBarsView->setNestedPartitionsMode( mode ); + m_afterPartitionLabelsView = new PartitionLabelsView( m_previewAfterFrame ); + m_afterPartitionLabelsView->setExtendedPartitionHidden( mode == PartitionBarsView::NoNestedPartitions ); + m_afterPartitionLabelsView->setCustomNewRootLabel( + Calamares::Branding::instance()->string( Calamares::Branding::BootloaderEntryName ) ); + + PartitionModel* model = m_core->partitionModelForDevice( selectedDevice() ); + + // The QObject parents tree is meaningful for memory management here, + // see qDeleteAll above. + m_afterPartitionBarsView->setModel( model ); + m_afterPartitionLabelsView->setModel( model ); + m_afterPartitionBarsView->setSelectionMode( QAbstractItemView::NoSelection ); + m_afterPartitionLabelsView->setSelectionMode( QAbstractItemView::NoSelection ); + + layout->addWidget( m_afterPartitionBarsView ); + layout->addWidget( m_afterPartitionLabelsView ); + + if ( !m_isEfi ) + { + QWidget* eraseWidget = new QWidget; + + QHBoxLayout* eraseLayout = new QHBoxLayout; + eraseWidget->setLayout( eraseLayout ); + eraseLayout->setContentsMargins( 0, 0, 0, 0 ); + QLabel* eraseBootloaderLabel = new QLabel( eraseWidget ); + eraseLayout->addWidget( eraseBootloaderLabel ); + eraseBootloaderLabel->setText( tr( "Boot loader location:" ) ); + + m_bootloaderComboBox = createBootloaderComboBox( eraseWidget ); + connect( m_core->bootLoaderModel(), &QAbstractItemModel::modelReset, [this]() { + if ( !m_bootloaderComboBox.isNull() ) { - Q_UNUSED( path ) - sizeLabel->setText( tr( "%1 will be shrunk to %2MiB and a new " - "%3MiB partition will be created for %4." ) - .arg( m_beforePartitionBarsView->selectionModel()->currentIndex().data().toString() ) - .arg( CalamaresUtils::BytesToMiB( size ) ) - .arg( CalamaresUtils::BytesToMiB( sizeNext ) ) - .arg( Calamares::Branding::instance()->shortProductName() ) ); + Calamares::restoreSelectedBootLoader( *m_bootloaderComboBox, m_core->bootLoaderInstallPath() ); } - ); + } ); + connect( + m_core, + &PartitionCoreModule::deviceReverted, + this, + [this]( Device* dev ) { + Q_UNUSED( dev ) + if ( !m_bootloaderComboBox.isNull() ) + { + if ( m_bootloaderComboBox->model() != m_core->bootLoaderModel() ) + { + m_bootloaderComboBox->setModel( m_core->bootLoaderModel() ); + } - m_previewAfterFrame->show(); - m_previewAfterLabel->show(); + m_bootloaderComboBox->setCurrentIndex( m_lastSelectedDeviceIndex ); + } + }, + Qt::QueuedConnection ); + // ^ Must be Queued so it's sure to run when the widget is already visible. - SelectionFilter filter = [ this ]( const QModelIndex& index ) - { - return PartUtils::canBeResized( - static_cast< Partition* >( - index.data( PartitionModel::PartitionPtrRole ) - .value< void* >() ) ); + eraseLayout->addWidget( m_bootloaderComboBox ); + eraseBootloaderLabel->setBuddy( m_bootloaderComboBox ); + eraseLayout->addStretch(); + + layout->addWidget( eraseWidget ); + } + + m_previewAfterFrame->show(); + m_previewAfterLabel->show(); + + if ( m_choice == InstallChoice::Erase ) + { + m_selectLabel->hide(); + } + else + { + SelectionFilter filter = [this]( const QModelIndex& index ) { + return PartUtils::canBeReplaced( + static_cast< Partition* >( index.data( PartitionModel::PartitionPtrRole ).value< void* >() ) ); }; m_beforePartitionBarsView->setSelectionFilter( filter ); m_beforePartitionLabelsView->setSelectionFilter( filter ); - break; + m_selectLabel->show(); + m_selectLabel->setText( tr( "Select a partition to install on" ) ); } - case InstallChoice::Erase: - case InstallChoice::Replace: - { - if ( m_enableEncryptionWidget ) - m_encryptWidget->show(); - m_previewBeforeLabel->setText( tr( "Current:" ) ); - m_afterPartitionBarsView = new PartitionBarsView( m_previewAfterFrame ); - m_afterPartitionBarsView->setNestedPartitionsMode( mode ); - m_afterPartitionLabelsView = new PartitionLabelsView( m_previewAfterFrame ); - m_afterPartitionLabelsView->setExtendedPartitionHidden( mode == PartitionBarsView::NoNestedPartitions ); - m_afterPartitionLabelsView->setCustomNewRootLabel( Calamares::Branding::instance()->string(Calamares::Branding::BootloaderEntryName) ); - PartitionModel* model = m_core->partitionModelForDevice( selectedDevice() ); - - // The QObject parents tree is meaningful for memory management here, - // see qDeleteAll above. - m_afterPartitionBarsView->setModel( model ); - m_afterPartitionLabelsView->setModel( model ); - m_afterPartitionBarsView->setSelectionMode( QAbstractItemView::NoSelection ); - m_afterPartitionLabelsView->setSelectionMode( QAbstractItemView::NoSelection ); - - layout->addWidget( m_afterPartitionBarsView ); - layout->addWidget( m_afterPartitionLabelsView ); - - if ( !m_isEfi ) - { - QWidget* eraseWidget = new QWidget; - - QHBoxLayout* eraseLayout = new QHBoxLayout; - eraseWidget->setLayout( eraseLayout ); - eraseLayout->setContentsMargins( 0, 0, 0, 0 ); - QLabel* eraseBootloaderLabel = new QLabel( eraseWidget ); - eraseLayout->addWidget( eraseBootloaderLabel ); - eraseBootloaderLabel->setText( tr( "Boot loader location:" ) ); - - m_bootloaderComboBox = createBootloaderComboBox( eraseWidget ); - connect( m_core->bootLoaderModel(), &QAbstractItemModel::modelReset, - [ this ]() - { - if ( !m_bootloaderComboBox.isNull() ) - Calamares::restoreSelectedBootLoader( *m_bootloaderComboBox, m_core->bootLoaderInstallPath() ); - } - ); - connect( m_core, &PartitionCoreModule::deviceReverted, this, - [ this ]( Device* dev ) - { - Q_UNUSED( dev ) - if ( !m_bootloaderComboBox.isNull() ) - { - if ( m_bootloaderComboBox->model() != m_core->bootLoaderModel() ) - m_bootloaderComboBox->setModel( m_core->bootLoaderModel() ); - - m_bootloaderComboBox->setCurrentIndex( m_lastSelectedDeviceIndex ); - } - }, Qt::QueuedConnection ); - // ^ Must be Queued so it's sure to run when the widget is already visible. - - eraseLayout->addWidget( m_bootloaderComboBox ); - eraseBootloaderLabel->setBuddy( m_bootloaderComboBox ); - eraseLayout->addStretch(); - - layout->addWidget( eraseWidget ); - } - - m_previewAfterFrame->show(); - m_previewAfterLabel->show(); - - if ( m_choice == InstallChoice::Erase ) - m_selectLabel->hide(); - else - { - SelectionFilter filter = [ this ]( const QModelIndex& index ) - { - return PartUtils::canBeReplaced( - static_cast< Partition* >( - index.data( PartitionModel::PartitionPtrRole ) - .value< void* >() ) ); - }; - m_beforePartitionBarsView->setSelectionFilter( filter ); - m_beforePartitionLabelsView->setSelectionFilter( filter ); - - m_selectLabel->show(); - m_selectLabel->setText( tr( "Select a partition to install on" ) ); - } - - break; - } + break; + } case InstallChoice::NoChoice: case InstallChoice::Manual: m_selectLabel->hide(); @@ -1110,22 +1124,20 @@ ChoicePage::setupEfiSystemPartitionSelector() // Only the already existing ones: QList< Partition* > efiSystemPartitions = m_core->efiSystemPartitions(); - if ( efiSystemPartitions.count() == 0 ) //should never happen + if ( efiSystemPartitions.count() == 0 ) //should never happen { - m_efiLabel->setText( - tr( "An EFI system partition cannot be found anywhere " - "on this system. Please go back and use manual " - "partitioning to set up %1." ) - .arg( Calamares::Branding::instance()->shortProductName() ) ); + m_efiLabel->setText( tr( "An EFI system partition cannot be found anywhere " + "on this system. Please go back and use manual " + "partitioning to set up %1." ) + .arg( Calamares::Branding::instance()->shortProductName() ) ); updateNextEnabled(); } - else if ( efiSystemPartitions.count() == 1 ) //probably most usual situation + else if ( efiSystemPartitions.count() == 1 ) //probably most usual situation { - m_efiLabel->setText( - tr( "The EFI system partition at %1 will be used for " - "starting %2." ) - .arg( efiSystemPartitions.first()->partitionPath() ) - .arg( Calamares::Branding::instance()->shortProductName() ) ); + m_efiLabel->setText( tr( "The EFI system partition at %1 will be used for " + "starting %2." ) + .arg( efiSystemPartitions.first()->partitionPath() ) + .arg( Calamares::Branding::instance()->shortProductName() ) ); } else { @@ -1137,9 +1149,10 @@ ChoicePage::setupEfiSystemPartitionSelector() m_efiComboBox->addItem( efiPartition->partitionPath(), i ); // We pick an ESP on the currently selected device, if possible - if ( efiPartition->devicePath() == selectedDevice()->deviceNode() && - efiPartition->number() == 1 ) + if ( efiPartition->devicePath() == selectedDevice()->deviceNode() && efiPartition->number() == 1 ) + { m_efiComboBox->setCurrentIndex( i ); + } } } } @@ -1152,15 +1165,15 @@ ChoicePage::createBootloaderComboBox( QWidget* parent ) bcb->setModel( m_core->bootLoaderModel() ); // When the chosen bootloader device changes, we update the choice in the PCM - connect( bcb, QOverload::of( &QComboBox::currentIndexChanged ), - this, [this]( int newIndex ) - { + connect( bcb, QOverload< int >::of( &QComboBox::currentIndexChanged ), this, [this]( int newIndex ) { QComboBox* bcb = qobject_cast< QComboBox* >( sender() ); if ( bcb ) { QVariant var = bcb->itemData( newIndex, BootLoaderModel::BootLoaderPathRole ); if ( !var.isValid() ) + { return; + } m_core->setBootLoaderInstallPath( var.toString() ); } } ); @@ -1170,7 +1183,7 @@ ChoicePage::createBootloaderComboBox( QWidget* parent ) static inline void -force_uncheck(QButtonGroup* grp, PrettyRadioButton* button) +force_uncheck( QButtonGroup* grp, PrettyRadioButton* button ) { button->hide(); grp->setExclusive( false ); @@ -1179,7 +1192,7 @@ force_uncheck(QButtonGroup* grp, PrettyRadioButton* button) } static inline QDebug& -operator <<( QDebug& s, PartitionIterator& it ) +operator<<( QDebug& s, PartitionIterator& it ) { s << ( ( *it ) ? ( *it )->deviceNode() : QString( "" ) ); return s; @@ -1195,21 +1208,28 @@ void ChoicePage::setupActions() { Device* currentDevice = selectedDevice(); - OsproberEntryList osproberEntriesForCurrentDevice = - getOsproberEntriesForDevice( currentDevice ); + OsproberEntryList osproberEntriesForCurrentDevice = getOsproberEntriesForDevice( currentDevice ); - cDebug() << "Setting up actions for" << currentDevice->deviceNode() - << "with" << osproberEntriesForCurrentDevice.count() << "entries."; + cDebug() << "Setting up actions for" << currentDevice->deviceNode() << "with" + << osproberEntriesForCurrentDevice.count() << "entries."; if ( currentDevice->partitionTable() ) + { m_deviceInfoWidget->setPartitionTableType( currentDevice->partitionTable()->type() ); + } else + { m_deviceInfoWidget->setPartitionTableType( PartitionTable::unknownTableType ); + } if ( m_allowManualPartitioning ) + { m_somethingElseButton->show(); + } else + { force_uncheck( m_grp, m_somethingElseButton ); + } bool atLeastOneCanBeResized = false; bool atLeastOneCanBeReplaced = false; @@ -1217,16 +1237,15 @@ ChoicePage::setupActions() bool isInactiveRAID = false; #ifdef WITH_KPMCORE4API - if ( currentDevice->type() == Device::Type::SoftwareRAID_Device && - static_cast< SoftwareRAID* >(currentDevice)->status() == SoftwareRAID::Status::Inactive ) + if ( currentDevice->type() == Device::Type::SoftwareRAID_Device + && static_cast< SoftwareRAID* >( currentDevice )->status() == SoftwareRAID::Status::Inactive ) { cDebug() << Logger::SubEntry << "part of an inactive RAID device"; isInactiveRAID = true; } #endif - for ( auto it = PartitionIterator::begin( currentDevice ); - it != PartitionIterator::end( currentDevice ); ++it ) + for ( auto it = PartitionIterator::begin( currentDevice ); it != PartitionIterator::end( currentDevice ); ++it ) { if ( PartUtils::canBeResized( *it ) ) { @@ -1238,7 +1257,7 @@ ChoicePage::setupActions() cDebug() << Logger::SubEntry << "contains replaceable" << it; atLeastOneCanBeReplaced = true; } - if ( (*it)->isMounted() ) + if ( ( *it )->isMounted() ) { atLeastOneIsMounted = true; } @@ -1259,12 +1278,11 @@ ChoicePage::setupActions() m_alongsideButton->setText( tr( "Install alongside
    " "The installer will shrink a partition to make room for %1." ) - .arg( Calamares::Branding::instance()->shortVersionedName() ) ); + .arg( Calamares::Branding::instance()->shortVersionedName() ) ); m_replaceButton->setText( tr( "Replace a partition
    " "Replaces a partition with %1." ) - .arg( Calamares::Branding::instance()->shortVersionedName() ) ); - ) + .arg( Calamares::Branding::instance()->shortVersionedName() ) ); ) m_replaceButton->hide(); m_alongsideButton->hide(); @@ -1285,11 +1303,11 @@ ChoicePage::setupActions() "What would you like to do?
    " "You will be able to review and confirm your choices " "before any change is made to the storage device." ) - .arg( osName ) ); + .arg( osName ) ); m_alongsideButton->setText( tr( "Install alongside
    " "The installer will shrink a partition to make room for %1." ) - .arg( Calamares::Branding::instance()->shortVersionedName() ) ); + .arg( Calamares::Branding::instance()->shortVersionedName() ) ); m_eraseButton->setText( tr( "Erase disk
    " "This will delete all data " @@ -1298,8 +1316,7 @@ ChoicePage::setupActions() m_replaceButton->setText( tr( "Replace a partition
    " "Replaces a partition with %1." ) - .arg( Calamares::Branding::instance()->shortVersionedName() ) ); - ) + .arg( Calamares::Branding::instance()->shortVersionedName() ) ); ) } else { @@ -1312,7 +1329,7 @@ ChoicePage::setupActions() m_alongsideButton->setText( tr( "Install alongside
    " "The installer will shrink a partition to make room for %1." ) - .arg( Calamares::Branding::instance()->shortVersionedName() ) ); + .arg( Calamares::Branding::instance()->shortVersionedName() ) ); m_eraseButton->setText( tr( "Erase disk
    " "This will delete all data " @@ -1320,8 +1337,7 @@ ChoicePage::setupActions() m_replaceButton->setText( tr( "Replace a partition
    " "Replaces a partition with %1." ) - .arg( Calamares::Branding::instance()->shortVersionedName() ) ); - ) + .arg( Calamares::Branding::instance()->shortVersionedName() ) ); ) } } else @@ -1338,7 +1354,7 @@ ChoicePage::setupActions() m_alongsideButton->setText( tr( "Install alongside
    " "The installer will shrink a partition to make room for %1." ) - .arg( Calamares::Branding::instance()->shortVersionedName() ) ); + .arg( Calamares::Branding::instance()->shortVersionedName() ) ); m_eraseButton->setText( tr( "Erase disk
    " "This will delete all data " @@ -1346,8 +1362,7 @@ ChoicePage::setupActions() m_replaceButton->setText( tr( "Replace a partition
    " "Replaces a partition with %1." ) - .arg( Calamares::Branding::instance()->shortVersionedName() ) ); - ) + .arg( Calamares::Branding::instance()->shortVersionedName() ) ); ) } #ifdef DEBUG_PARTITION_UNSAFE @@ -1361,7 +1376,9 @@ ChoicePage::setupActions() #endif if ( atLeastOneCanBeReplaced ) + { m_replaceButton->show(); + } else { cDebug() << "Replace button suppressed because none can be replaced."; @@ -1369,7 +1386,9 @@ ChoicePage::setupActions() } if ( atLeastOneCanBeResized ) + { m_alongsideButton->show(); + } else { cDebug() << "Alongside button suppressed because none can be resized."; @@ -1377,12 +1396,13 @@ ChoicePage::setupActions() } if ( !atLeastOneIsMounted && !isInactiveRAID ) + { m_eraseButton->show(); // None mounted + } else { cDebug() << "Erase button suppressed" - << "mount?" << atLeastOneIsMounted - << "raid?" << isInactiveRAID; + << "mount?" << atLeastOneIsMounted << "raid?" << isInactiveRAID; force_uncheck( m_grp, m_eraseButton ); } @@ -1392,7 +1412,7 @@ ChoicePage::setupActions() if ( isEfi && !efiSystemPartitionFound ) { cWarning() << "System is EFI but there's no EFI system partition, " - "DISABLING alongside and replace features."; + "DISABLING alongside and replace features."; m_alongsideButton->hide(); m_replaceButton->hide(); } @@ -1406,7 +1426,9 @@ ChoicePage::getOsproberEntriesForDevice( Device* device ) const for ( const OsproberEntry& entry : m_core->osproberEntries() ) { if ( entry.path.startsWith( device->deviceNode() ) ) + { eList.append( entry ); + } } return eList; } @@ -1450,7 +1472,7 @@ ChoicePage::calculateNextEnabled() const enabled = true; } - if (!enabled) + if ( !enabled ) { cDebug() << "No valid choice made"; return false; @@ -1470,13 +1492,13 @@ ChoicePage::calculateNextEnabled() const { switch ( m_encryptWidget->state() ) { - case EncryptWidget::Encryption::Unconfirmed: - cDebug() << "No passphrase provided"; - return false; - case EncryptWidget::Encryption::Disabled: - case EncryptWidget::Encryption::Confirmed: - // Checkbox not checked, **or** passphrases match - break; + case EncryptWidget::Encryption::Unconfirmed: + cDebug() << "No passphrase provided"; + return false; + case EncryptWidget::Encryption::Disabled: + case EncryptWidget::Encryption::Confirmed: + // Checkbox not checked, **or** passphrases match + break; } } @@ -1497,12 +1519,14 @@ ChoicePage::updateNextEnabled() } void -ChoicePage::updateSwapChoicesTr(QComboBox* box) +ChoicePage::updateSwapChoicesTr( QComboBox* box ) { if ( !box ) + { return; + } - static_assert(SwapChoice::NoSwap == 0, "Enum values out-of-sync"); + static_assert( SwapChoice::NoSwap == 0, "Enum values out-of-sync" ); for ( int index = 0; index < box->count(); ++index ) { bool ok = false; @@ -1510,28 +1534,32 @@ ChoicePage::updateSwapChoicesTr(QComboBox* box) switch ( value = box->itemData( index ).toInt( &ok ) ) { - // case 0: - case SwapChoice::NoSwap: - // toInt() returns 0 on failure, so check for ok - if ( ok ) // It was explicitly set to 0 - box->setItemText( index, tr( "No Swap" ) ); - else - cWarning() << "Box item" << index << box->itemText( index ) << "has non-integer role."; - break; - case SwapChoice::ReuseSwap: - box->setItemText( index, tr( "Reuse Swap" ) ); - break; - case SwapChoice::SmallSwap: - box->setItemText( index, tr( "Swap (no Hibernate)" ) ); - break; - case SwapChoice::FullSwap: - box->setItemText( index, tr( "Swap (with Hibernate)" ) ); - break; - case SwapChoice::SwapFile: - box->setItemText( index, tr( "Swap to file" ) ); - break; - default: - cWarning() << "Box item" << index << box->itemText( index ) << "has role" << value; + // case 0: + case SwapChoice::NoSwap: + // toInt() returns 0 on failure, so check for ok + if ( ok ) // It was explicitly set to 0 + { + box->setItemText( index, tr( "No Swap" ) ); + } + else + { + cWarning() << "Box item" << index << box->itemText( index ) << "has non-integer role."; + } + break; + case SwapChoice::ReuseSwap: + box->setItemText( index, tr( "Reuse Swap" ) ); + break; + case SwapChoice::SmallSwap: + box->setItemText( index, tr( "Swap (no Hibernate)" ) ); + break; + case SwapChoice::FullSwap: + box->setItemText( index, tr( "Swap (with Hibernate)" ) ); + break; + case SwapChoice::SwapFile: + box->setItemText( index, tr( "Swap to file" ) ); + break; + default: + cWarning() << "Box item" << index << box->itemText( index ) << "has role" << value; } } } diff --git a/src/modules/partition/gui/ChoicePage.h b/src/modules/partition/gui/ChoicePage.h index af8ee9060..9aa8befed 100644 --- a/src/modules/partition/gui/ChoicePage.h +++ b/src/modules/partition/gui/ChoicePage.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2018-2019, Adriaan de Groot - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/CreatePartitionDialog.cpp b/src/modules/partition/gui/CreatePartitionDialog.cpp index a73441bc3..ae500c500 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.cpp +++ b/src/modules/partition/gui/CreatePartitionDialog.cpp @@ -1,10 +1,11 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2016, Teo Mrnjavac - * Copyright 2018, 2020, Adriaan de Groot - * Copyright 2018, Andrius Štikonas - * Copyright 2018, Caio Carvalho + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Andrius Štikonas + * SPDX-FileCopyrightText: 2018 Caio Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,16 +25,16 @@ #include "ui_CreatePartitionDialog.h" #include "core/ColorUtils.h" -#include "core/PartitionInfo.h" -#include "core/PartUtils.h" #include "core/KPMHelpers.h" +#include "core/PartUtils.h" +#include "core/PartitionInfo.h" #include "gui/PartitionDialogHelpers.h" #include "gui/PartitionSizeController.h" #include "GlobalStorage.h" #include "JobQueue.h" -#include "partition/PartitionQuery.h" #include "partition/FileSystem.h" +#include "partition/PartitionQuery.h" #include "utils/Logger.h" #include @@ -53,16 +54,17 @@ using CalamaresUtils::Partition::untranslatedFS; using CalamaresUtils::Partition::userVisibleFS; -static QSet< FileSystem::Type > s_unmountableFS( -{ - FileSystem::Unformatted, - FileSystem::LinuxSwap, - FileSystem::Extended, - FileSystem::Unknown, - FileSystem::Lvm2_PV -} ); +static QSet< FileSystem::Type > s_unmountableFS( { FileSystem::Unformatted, + FileSystem::LinuxSwap, + FileSystem::Extended, + FileSystem::Unknown, + FileSystem::Lvm2_PV } ); -CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* parentPartition, Partition* partition, const QStringList& usedMountPoints, QWidget* parentWidget ) +CreatePartitionDialog::CreatePartitionDialog( Device* device, + PartitionNode* parentPartition, + Partition* partition, + const QStringList& usedMountPoints, + QWidget* parentWidget ) : QDialog( parentWidget ) , m_ui( new Ui_CreatePartitionDialog ) , m_partitionSizeController( new PartitionSizeController( this ) ) @@ -74,33 +76,38 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* par m_ui->encryptWidget->setText( tr( "En&crypt" ) ); m_ui->encryptWidget->hide(); - if (m_device->type() != Device::Type::LVM_Device) { + if ( m_device->type() != Device::Type::LVM_Device ) + { m_ui->lvNameLabel->hide(); m_ui->lvNameLineEdit->hide(); } - if (m_device->type() == Device::Type::LVM_Device) { + if ( m_device->type() == Device::Type::LVM_Device ) + { /* LVM logical volume name can consist of: letters numbers _ . - + * It cannot start with underscore _ and must not be equal to . or .. or any entry in /dev/ * QLineEdit accepts QValidator::Intermediate, so we just disable . at the beginning */ - QRegularExpression re(QStringLiteral(R"(^(?!_|\.)[\w\-.+]+)")); - QRegularExpressionValidator *validator = new QRegularExpressionValidator(re, this); - m_ui->lvNameLineEdit->setValidator(validator); + QRegularExpression re( QStringLiteral( R"(^(?!_|\.)[\w\-.+]+)" ) ); + QRegularExpressionValidator* validator = new QRegularExpressionValidator( re, this ); + m_ui->lvNameLineEdit->setValidator( validator ); } - standardMountPoints( *(m_ui->mountPointComboBox), partition ? PartitionInfo::mountPoint( partition ) : QString() ); + standardMountPoints( *( m_ui->mountPointComboBox ), + partition ? PartitionInfo::mountPoint( partition ) : QString() ); - if ( device->partitionTable()->type() == PartitionTable::msdos || - device->partitionTable()->type() == PartitionTable::msdos_sectorbased ) + if ( device->partitionTable()->type() == PartitionTable::msdos + || device->partitionTable()->type() == PartitionTable::msdos_sectorbased ) + { initMbrPartitionTypeUi(); + } else + { initGptPartitionTypeUi(); + } // File system; the config value is translated (best-effort) to a type FileSystem::Type defaultFSType; QString untranslatedFSName = PartUtils::findFS( - Calamares::JobQueue::instance()-> - globalStorage()-> - value( "defaultFileSystemType" ).toString(), &defaultFSType ); + Calamares::JobQueue::instance()->globalStorage()->value( "defaultFileSystemType" ).toString(), &defaultFSType ); if ( defaultFSType == FileSystem::Type::Unknown ) { defaultFSType = FileSystem::Type::Ext4; @@ -111,12 +118,13 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* par QStringList fsNames; for ( auto fs : FileSystemFactory::map() ) { - if ( fs->supportCreate() != FileSystem::cmdSupportNone && - fs->type() != FileSystem::Extended ) + if ( fs->supportCreate() != FileSystem::cmdSupportNone && fs->type() != FileSystem::Extended ) { fsNames << userVisibleFS( fs ); // This is put into the combobox if ( fs->type() == defaultFSType ) + { defaultFsIndex = fsCounter; + } fsCounter++; } } @@ -126,26 +134,30 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* par connect( m_ui->fsComboBox, SIGNAL( activated( int ) ), SLOT( updateMountPointUi() ) ); connect( m_ui->extendedRadioButton, SIGNAL( toggled( bool ) ), SLOT( updateMountPointUi() ) ); - connect( m_ui->mountPointComboBox, &QComboBox::currentTextChanged, this, &CreatePartitionDialog::checkMountPointSelection ); + connect( m_ui->mountPointComboBox, + &QComboBox::currentTextChanged, + this, + &CreatePartitionDialog::checkMountPointSelection ); // Select a default m_ui->fsComboBox->setCurrentIndex( defaultFsIndex ); updateMountPointUi(); - setFlagList( *(m_ui->m_listFlags), static_cast< PartitionTable::Flags >( ~PartitionTable::Flags::Int(0) ), partition ? PartitionInfo::flags( partition ) : PartitionTable::Flags() ); + setFlagList( *( m_ui->m_listFlags ), + static_cast< PartitionTable::Flags >( ~PartitionTable::Flags::Int( 0 ) ), + partition ? PartitionInfo::flags( partition ) : PartitionTable::Flags() ); // Checks the initial selection. checkMountPointSelection(); } -CreatePartitionDialog::~CreatePartitionDialog() -{} +CreatePartitionDialog::~CreatePartitionDialog() {} PartitionTable::Flags CreatePartitionDialog::newFlags() const { - return flagsFromList( *(m_ui->m_listFlags) ); + return flagsFromList( *( m_ui->m_listFlags ) ); } void @@ -165,7 +177,9 @@ CreatePartitionDialog::initMbrPartitionTypeUi() } if ( fixedPartitionString.isEmpty() ) + { m_ui->fixedPartitionLabel->hide(); + } else { m_ui->fixedPartitionLabel->setText( fixedPartitionString ); @@ -188,44 +202,33 @@ CreatePartitionDialog::createPartition() { if ( m_role.roles() == PartitionRole::None ) { - m_role = PartitionRole( - m_ui->extendedRadioButton->isChecked() - ? PartitionRole::Extended - : PartitionRole::Primary - ); + m_role = PartitionRole( m_ui->extendedRadioButton->isChecked() ? PartitionRole::Extended + : PartitionRole::Primary ); } qint64 first = m_partitionSizeController->firstSector(); qint64 last = m_partitionSizeController->lastSector(); FileSystem::Type fsType = m_role.has( PartitionRole::Extended ) - ? FileSystem::Extended - : FileSystem::typeForName( m_ui->fsComboBox->currentText() ); + ? FileSystem::Extended + : FileSystem::typeForName( m_ui->fsComboBox->currentText() ); Partition* partition = nullptr; QString luksPassphrase = m_ui->encryptWidget->passphrase(); - if ( m_ui->encryptWidget->state() == EncryptWidget::Encryption::Confirmed && - !luksPassphrase.isEmpty() ) + if ( m_ui->encryptWidget->state() == EncryptWidget::Encryption::Confirmed && !luksPassphrase.isEmpty() ) { partition = KPMHelpers::createNewEncryptedPartition( - m_parent, - *m_device, - m_role, - fsType, first, last, luksPassphrase, newFlags() - ); + m_parent, *m_device, m_role, fsType, first, last, luksPassphrase, newFlags() ); } else { - partition = KPMHelpers::createNewPartition( - m_parent, - *m_device, - m_role, - fsType, first, last, newFlags() - ); + partition = KPMHelpers::createNewPartition( m_parent, *m_device, m_role, fsType, first, last, newFlags() ); } - if (m_device->type() == Device::Type::LVM_Device) { - partition->setPartitionPath(m_device->deviceNode() + QStringLiteral("/") + m_ui->lvNameLineEdit->text().trimmed()); + if ( m_device->type() == Device::Type::LVM_Device ) + { + partition->setPartitionPath( m_device->deviceNode() + QStringLiteral( "/" ) + + m_ui->lvNameLineEdit->text().trimmed() ); } PartitionInfo::setMountPoint( partition, selectedMountPoint( m_ui->mountPointComboBox ) ); @@ -244,9 +247,8 @@ CreatePartitionDialog::updateMountPointUi() FileSystem::Type type = FileSystem::typeForName( m_ui->fsComboBox->currentText() ); enabled = !s_unmountableFS.contains( type ); - if ( FileSystemFactory::map()[FileSystem::Type::Luks]->supportCreate() && - FS::luks::canEncryptType( type ) && - !m_role.has( PartitionRole::Extended ) ) + if ( FileSystemFactory::map()[ FileSystem::Type::Luks ]->supportCreate() && FS::luks::canEncryptType( type ) + && !m_role.has( PartitionRole::Extended ) ) { m_ui->encryptWidget->show(); m_ui->encryptWidget->reset(); @@ -260,7 +262,9 @@ CreatePartitionDialog::updateMountPointUi() m_ui->mountPointLabel->setEnabled( enabled ); m_ui->mountPointComboBox->setEnabled( enabled ); if ( !enabled ) + { m_ui->mountPointComboBox->setCurrentText( QString() ); + } } void @@ -282,8 +286,8 @@ void CreatePartitionDialog::initPartResizerWidget( Partition* partition ) { QColor color = CalamaresUtils::Partition::isPartitionFreeSpace( partition ) - ? ColorUtils::colorForPartitionInFreeSpace( partition ) - : ColorUtils::colorForPartition( partition ); + ? ColorUtils::colorForPartitionInFreeSpace( partition ) + : ColorUtils::colorForPartition( partition ); m_partitionSizeController->init( m_device, partition, color ); m_partitionSizeController->setPartResizerWidget( m_ui->partResizerWidget ); m_partitionSizeController->setSpinBox( m_ui->sizeSpinBox ); diff --git a/src/modules/partition/gui/CreatePartitionDialog.h b/src/modules/partition/gui/CreatePartitionDialog.h index 2f3cc14a5..6991d1fa5 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.h +++ b/src/modules/partition/gui/CreatePartitionDialog.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -49,7 +50,11 @@ public: * For the (unlikely) case that a newly created partition is being re-edited, * pass a pointer to that @p partition, otherwise pass nullptr. */ - CreatePartitionDialog( Device* device, PartitionNode* parentPartition, Partition* partition, const QStringList& usedMountPoints, QWidget* parentWidget = nullptr ); + CreatePartitionDialog( Device* device, + PartitionNode* parentPartition, + Partition* partition, + const QStringList& usedMountPoints, + QWidget* parentWidget = nullptr ); ~CreatePartitionDialog(); /** diff --git a/src/modules/partition/gui/CreateVolumeGroupDialog.cpp b/src/modules/partition/gui/CreateVolumeGroupDialog.cpp index a255e9902..2f5984301 100644 --- a/src/modules/partition/gui/CreateVolumeGroupDialog.cpp +++ b/src/modules/partition/gui/CreateVolumeGroupDialog.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/CreateVolumeGroupDialog.h b/src/modules/partition/gui/CreateVolumeGroupDialog.h index 02ca6410c..3c3d5cc1b 100644 --- a/src/modules/partition/gui/CreateVolumeGroupDialog.h +++ b/src/modules/partition/gui/CreateVolumeGroupDialog.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -39,4 +40,4 @@ private: qint64& m_peSize; }; -#endif // CREATEVOLUMEGROUPDIALOG_H +#endif // CREATEVOLUMEGROUPDIALOG_H diff --git a/src/modules/partition/gui/DeviceInfoWidget.cpp b/src/modules/partition/gui/DeviceInfoWidget.cpp index ea318e85c..d7059c71e 100644 --- a/src/modules/partition/gui/DeviceInfoWidget.cpp +++ b/src/modules/partition/gui/DeviceInfoWidget.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2015-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,15 +20,15 @@ #include "DeviceInfoWidget.h" +#include "GlobalStorage.h" +#include "JobQueue.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" #include "utils/Retranslator.h" -#include "JobQueue.h" -#include "GlobalStorage.h" #include -#include #include +#include DeviceInfoWidget::DeviceInfoWidget( QWidget* parent ) : QWidget( parent ) @@ -39,8 +40,8 @@ DeviceInfoWidget::DeviceInfoWidget( QWidget* parent ) setLayout( mainLayout ); CalamaresUtils::unmarginLayout( mainLayout ); - m_ptLabel->setObjectName("deviceInfoLabel"); - m_ptIcon->setObjectName("deviceInfoIcon"); + m_ptLabel->setObjectName( "deviceInfoLabel" ); + m_ptIcon->setObjectName( "deviceInfoIcon" ); mainLayout->addWidget( m_ptIcon ); mainLayout->addWidget( m_ptLabel ); @@ -49,16 +50,14 @@ DeviceInfoWidget::DeviceInfoWidget( QWidget* parent ) m_ptIcon->setMargin( 0 ); m_ptIcon->setFixedSize( iconSize ); m_ptIcon->setPixmap( - CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionTable, - CalamaresUtils::Original, - iconSize ) ); + CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionTable, CalamaresUtils::Original, iconSize ) ); QFontMetrics fm = QFontMetrics( QFont() ); m_ptLabel->setMinimumWidth( fm.boundingRect( "Amiga" ).width() + CalamaresUtils::defaultFontHeight() / 2 ); m_ptLabel->setAlignment( Qt::AlignCenter ); QPalette palette; - palette.setBrush( QPalette::Foreground, QColor( "#4D4D4D" ) ); //dark grey + palette.setBrush( QPalette::Foreground, QColor( "#4D4D4D" ) ); //dark grey m_ptIcon->setAutoFillBackground( true ); m_ptLabel->setAutoFillBackground( true ); @@ -107,7 +106,7 @@ DeviceInfoWidget::retranslateUi() QString toolTipString = tr( "This device has a %1 partition " "table." ) - .arg( typeString ); + .arg( typeString ); switch ( m_tableType ) { @@ -149,11 +148,11 @@ DeviceInfoWidget::retranslateUi() m_ptLabel->setToolTip( toolTipString ); m_ptIcon->setToolTip( tr( "The type of partition table on the " - "selected storage device.

    " - "The only way to change the partition table type is to " - "erase and recreate the partition table from scratch, " - "which destroys all data on the storage device.
    " - "This installer will keep the current partition table " - "unless you explicitly choose otherwise.
    " - "If unsure, on modern systems GPT is preferred." ) ); + "selected storage device.

    " + "The only way to change the partition table type is to " + "erase and recreate the partition table from scratch, " + "which destroys all data on the storage device.
    " + "This installer will keep the current partition table " + "unless you explicitly choose otherwise.
    " + "If unsure, on modern systems GPT is preferred." ) ); } diff --git a/src/modules/partition/gui/DeviceInfoWidget.h b/src/modules/partition/gui/DeviceInfoWidget.h index b1769c19d..38a0309f3 100644 --- a/src/modules/partition/gui/DeviceInfoWidget.h +++ b/src/modules/partition/gui/DeviceInfoWidget.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2015-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -43,4 +44,4 @@ private: PartitionTable::TableType m_tableType; }; -#endif // DEVICEINFOWIDGET_H +#endif // DEVICEINFOWIDGET_H diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.cpp b/src/modules/partition/gui/EditExistingPartitionDialog.cpp index 37868c7ff..633418ec3 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.cpp +++ b/src/modules/partition/gui/EditExistingPartitionDialog.cpp @@ -1,12 +1,13 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2016, Teo Mrnjavac - * Copyright 2018, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2008-2009 Volker Lanz + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2016 Andrius Štikonas + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 2020, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * - * Flags handling originally from KDE Partition Manager, - * Copyright 2008-2009, Volker Lanz - * Copyright 2016, Andrius Štikonas + * Flags handling originally from KDE Partition Manager. * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,9 +27,9 @@ #include "ui_EditExistingPartitionDialog.h" #include "core/ColorUtils.h" +#include "core/PartUtils.h" #include "core/PartitionCoreModule.h" #include "core/PartitionInfo.h" -#include "core/PartUtils.h" #include "gui/PartitionDialogHelpers.h" #include "gui/PartitionSizeController.h" @@ -48,7 +49,10 @@ using CalamaresUtils::Partition::untranslatedFS; using CalamaresUtils::Partition::userVisibleFS; -EditExistingPartitionDialog::EditExistingPartitionDialog( Device* device, Partition* partition, const QStringList& usedMountPoints, QWidget* parentWidget ) +EditExistingPartitionDialog::EditExistingPartitionDialog( Device* device, + Partition* partition, + const QStringList& usedMountPoints, + QWidget* parentWidget ) : QDialog( parentWidget ) , m_ui( new Ui_EditExistingPartitionDialog ) , m_device( device ) @@ -57,51 +61,50 @@ EditExistingPartitionDialog::EditExistingPartitionDialog( Device* device, Partit , m_usedMountPoints( usedMountPoints ) { m_ui->setupUi( this ); - standardMountPoints( *(m_ui->mountPointComboBox), PartitionInfo::mountPoint( partition ) ); + standardMountPoints( *( m_ui->mountPointComboBox ), PartitionInfo::mountPoint( partition ) ); QColor color = ColorUtils::colorForPartition( m_partition ); m_partitionSizeController->init( m_device, m_partition, color ); m_partitionSizeController->setSpinBox( m_ui->sizeSpinBox ); - connect( m_ui->mountPointComboBox, &QComboBox::currentTextChanged, - this, &EditExistingPartitionDialog::checkMountPointSelection ); + connect( m_ui->mountPointComboBox, + &QComboBox::currentTextChanged, + this, + &EditExistingPartitionDialog::checkMountPointSelection ); replacePartResizerWidget(); - connect( m_ui->formatRadioButton, &QAbstractButton::toggled, - [ this ]( bool doFormat ) - { + connect( m_ui->formatRadioButton, &QAbstractButton::toggled, [this]( bool doFormat ) { replacePartResizerWidget(); m_ui->fileSystemLabel->setEnabled( doFormat ); m_ui->fileSystemComboBox->setEnabled( doFormat ); if ( !doFormat ) + { m_ui->fileSystemComboBox->setCurrentText( userVisibleFS( m_partition->fileSystem() ) ); + } updateMountPointPicker(); } ); - connect( m_ui->fileSystemComboBox, &QComboBox::currentTextChanged, - [ this ]( QString ) - { - updateMountPointPicker(); - } ); + connect( + m_ui->fileSystemComboBox, &QComboBox::currentTextChanged, [this]( QString ) { updateMountPointPicker(); } ); // File system QStringList fsNames; for ( auto fs : FileSystemFactory::map() ) { if ( fs->supportCreate() != FileSystem::cmdSupportNone && fs->type() != FileSystem::Extended ) - fsNames << userVisibleFS( fs ); // For the combo box + { + fsNames << userVisibleFS( fs ); // For the combo box + } } m_ui->fileSystemComboBox->addItems( fsNames ); FileSystem::Type defaultFSType; QString untranslatedFSName = PartUtils::findFS( - Calamares::JobQueue::instance()-> - globalStorage()-> - value( "defaultFileSystemType" ).toString(), &defaultFSType ); + Calamares::JobQueue::instance()->globalStorage()->value( "defaultFileSystemType" ).toString(), &defaultFSType ); if ( defaultFSType == FileSystem::Type::Unknown ) { defaultFSType = FileSystem::Type::Ext4; @@ -109,39 +112,40 @@ EditExistingPartitionDialog::EditExistingPartitionDialog( Device* device, Partit QString thisFSNameForUser = userVisibleFS( m_partition->fileSystem() ); if ( fsNames.contains( thisFSNameForUser ) ) + { m_ui->fileSystemComboBox->setCurrentText( thisFSNameForUser ); + } else + { m_ui->fileSystemComboBox->setCurrentText( FileSystem::nameForType( defaultFSType ) ); + } m_ui->fileSystemLabel->setEnabled( m_ui->formatRadioButton->isChecked() ); m_ui->fileSystemComboBox->setEnabled( m_ui->formatRadioButton->isChecked() ); - setFlagList( *(m_ui->m_listFlags), m_partition->availableFlags(), PartitionInfo::flags( m_partition ) ); + setFlagList( *( m_ui->m_listFlags ), m_partition->availableFlags(), PartitionInfo::flags( m_partition ) ); } -EditExistingPartitionDialog::~EditExistingPartitionDialog() -{} +EditExistingPartitionDialog::~EditExistingPartitionDialog() {} PartitionTable::Flags EditExistingPartitionDialog::newFlags() const { - return flagsFromList( *(m_ui->m_listFlags) ); + return flagsFromList( *( m_ui->m_listFlags ) ); } void EditExistingPartitionDialog::applyChanges( PartitionCoreModule* core ) { - PartitionInfo::setMountPoint( m_partition, selectedMountPoint(m_ui->mountPointComboBox) ); + PartitionInfo::setMountPoint( m_partition, selectedMountPoint( m_ui->mountPointComboBox ) ); qint64 newFirstSector = m_partitionSizeController->firstSector(); - qint64 newLastSector = m_partitionSizeController->lastSector(); - bool partResizedMoved = newFirstSector != m_partition->firstSector() || - newLastSector != m_partition->lastSector(); + qint64 newLastSector = m_partitionSizeController->lastSector(); + bool partResizedMoved = newFirstSector != m_partition->firstSector() || newLastSector != m_partition->lastSector(); - cDebug() << "old boundaries:" << m_partition->firstSector() - << m_partition->lastSector() << m_partition->length(); + cDebug() << "old boundaries:" << m_partition->firstSector() << m_partition->lastSector() << m_partition->length(); cDebug() << "new boundaries:" << newFirstSector << newLastSector; cDebug() << "dirty status:" << m_partitionSizeController->isDirty(); @@ -149,22 +153,21 @@ EditExistingPartitionDialog::applyChanges( PartitionCoreModule* core ) if ( m_ui->formatRadioButton->isChecked() ) { fsType = m_partition->roles().has( PartitionRole::Extended ) - ? FileSystem::Extended - : FileSystem::typeForName( m_ui->fileSystemComboBox->currentText() ); + ? FileSystem::Extended + : FileSystem::typeForName( m_ui->fileSystemComboBox->currentText() ); } if ( partResizedMoved ) { if ( m_ui->formatRadioButton->isChecked() ) { - Partition* newPartition = KPMHelpers::createNewPartition( - m_partition->parent(), - *m_device, - m_partition->roles(), - fsType, - newFirstSector, - newLastSector, - newFlags() ); + Partition* newPartition = KPMHelpers::createNewPartition( m_partition->parent(), + *m_device, + m_partition->roles(), + fsType, + newFirstSector, + newLastSector, + newFlags() ); PartitionInfo::setMountPoint( newPartition, PartitionInfo::mountPoint( m_partition ) ); PartitionInfo::setFormat( newPartition, true ); @@ -174,12 +177,11 @@ EditExistingPartitionDialog::applyChanges( PartitionCoreModule* core ) } else { - core->resizePartition( m_device, - m_partition, - newFirstSector, - newLastSector ); + core->resizePartition( m_device, m_partition, newFirstSector, newLastSector ); if ( m_partition->activeFlags() != newFlags() ) + { core->setPartitionFlags( m_device, m_partition, newFlags() ); + } } } else @@ -192,18 +194,19 @@ EditExistingPartitionDialog::applyChanges( PartitionCoreModule* core ) { core->formatPartition( m_device, m_partition ); if ( m_partition->activeFlags() != newFlags() ) + { core->setPartitionFlags( m_device, m_partition, newFlags() ); + } } - else // otherwise, we delete and recreate the partition with new fs type + else // otherwise, we delete and recreate the partition with new fs type { - Partition* newPartition = KPMHelpers::createNewPartition( - m_partition->parent(), - *m_device, - m_partition->roles(), - fsType, - m_partition->firstSector(), - m_partition->lastSector(), - newFlags() ); + Partition* newPartition = KPMHelpers::createNewPartition( m_partition->parent(), + *m_device, + m_partition->roles(), + fsType, + m_partition->firstSector(), + m_partition->lastSector(), + newFlags() ); PartitionInfo::setMountPoint( newPartition, PartitionInfo::mountPoint( m_partition ) ); PartitionInfo::setFormat( newPartition, true ); @@ -216,7 +219,9 @@ EditExistingPartitionDialog::applyChanges( PartitionCoreModule* core ) { core->refreshPartition( m_device, m_partition ); if ( m_partition->activeFlags() != newFlags() ) + { core->setPartitionFlags( m_device, m_partition, newFlags() ); + } } } } @@ -255,11 +260,8 @@ EditExistingPartitionDialog::updateMountPointPicker() fsType = m_partition->fileSystem().type(); } bool canMount = true; - if ( fsType == FileSystem::Extended || - fsType == FileSystem::LinuxSwap || - fsType == FileSystem::Unformatted || - fsType == FileSystem::Unknown || - fsType == FileSystem::Lvm2_PV ) + if ( fsType == FileSystem::Extended || fsType == FileSystem::LinuxSwap || fsType == FileSystem::Unformatted + || fsType == FileSystem::Unknown || fsType == FileSystem::Lvm2_PV ) { canMount = false; } @@ -267,7 +269,9 @@ EditExistingPartitionDialog::updateMountPointPicker() m_ui->mountPointLabel->setEnabled( canMount ); m_ui->mountPointComboBox->setEnabled( canMount ); if ( !canMount ) + { setSelectedMountPoint( m_ui->mountPointComboBox, QString() ); + } } void diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.h b/src/modules/partition/gui/EditExistingPartitionDialog.h index e98563bc0..7788305fc 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.h +++ b/src/modules/partition/gui/EditExistingPartitionDialog.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -41,7 +42,10 @@ class EditExistingPartitionDialog : public QDialog { Q_OBJECT public: - EditExistingPartitionDialog( Device* device, Partition* partition, const QStringList& usedMountPoints, QWidget* parentWidget = nullptr ); + EditExistingPartitionDialog( Device* device, + Partition* partition, + const QStringList& usedMountPoints, + QWidget* parentWidget = nullptr ); ~EditExistingPartitionDialog(); void applyChanges( PartitionCoreModule* module ); diff --git a/src/modules/partition/gui/EncryptWidget.cpp b/src/modules/partition/gui/EncryptWidget.cpp index 5e44c15fd..cf9a0c922 100644 --- a/src/modules/partition/gui/EncryptWidget.cpp +++ b/src/modules/partition/gui/EncryptWidget.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/EncryptWidget.h b/src/modules/partition/gui/EncryptWidget.h index 79beb1fa7..c3f7928fe 100644 --- a/src/modules/partition/gui/EncryptWidget.h +++ b/src/modules/partition/gui/EncryptWidget.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,7 +26,7 @@ namespace Ui { - class EncryptWidget; +class EncryptWidget; } class EncryptWidget : public QWidget diff --git a/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp index cd480aa55..f9f1b9c6b 100644 --- a/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp +++ b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,11 +22,12 @@ #include ListPhysicalVolumeWidgetItem::ListPhysicalVolumeWidgetItem( const Partition* partition, bool checked ) - : QListWidgetItem(QString("%1 | %2").arg( partition->deviceNode(), Capacity::formatByteSize( partition->capacity() ))) - , m_partition(partition) + : QListWidgetItem( + QString( "%1 | %2" ).arg( partition->deviceNode(), Capacity::formatByteSize( partition->capacity() ) ) ) + , m_partition( partition ) { setToolTip( partition->deviceNode() ); - setSizeHint( QSize(0, 32) ); + setSizeHint( QSize( 0, 32 ) ); setCheckState( checked ? Qt::Checked : Qt::Unchecked ); } diff --git a/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h index 44ba8c3bf..7d8e8faf0 100644 --- a/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h +++ b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -34,4 +35,4 @@ private: const Partition* m_partition; }; -#endif // LISTPHYSICALVOLUMEWIDGETITEM_H +#endif // LISTPHYSICALVOLUMEWIDGETITEM_H diff --git a/src/modules/partition/gui/PartitionBarsView.cpp b/src/modules/partition/gui/PartitionBarsView.cpp index b7c21473c..6799b26f0 100644 --- a/src/modules/partition/gui/PartitionBarsView.cpp +++ b/src/modules/partition/gui/PartitionBarsView.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,8 +19,8 @@ */ #include "gui/PartitionBarsView.h" -#include "core/PartitionModel.h" #include "core/ColorUtils.h" +#include "core/PartitionModel.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" @@ -32,8 +33,9 @@ #include -static const int VIEW_HEIGHT = qMax( CalamaresUtils::defaultFontHeight() + 8, // wins out with big fonts - int( CalamaresUtils::defaultFontHeight() * 0.6 ) + 22 ); // wins out with small fonts +static const int VIEW_HEIGHT + = qMax( CalamaresUtils::defaultFontHeight() + 8, // wins out with big fonts + int( CalamaresUtils::defaultFontHeight() * 0.6 ) + 22 ); // wins out with small fonts static constexpr int CORNER_RADIUS = 3; static const int EXTENDED_PARTITION_MARGIN = qMax( 4, VIEW_HEIGHT / 6 ); @@ -45,8 +47,8 @@ static const int EXTENDED_PARTITION_MARGIN = qMax( 4, VIEW_HEIGHT / 6 ); // and the extended partition box (the "- 2" part). // At worst, on low DPI systems, this will mean in order: // 1px outer rect, 1 px gap, 1px selection rect, 1px gap, 1px extended partition rect. -static const int SELECTION_MARGIN = qMin( ( EXTENDED_PARTITION_MARGIN - 2 ) / 2, - ( EXTENDED_PARTITION_MARGIN - 2 ) - 2 ); +static const int SELECTION_MARGIN + = qMin( ( EXTENDED_PARTITION_MARGIN - 2 ) / 2, ( EXTENDED_PARTITION_MARGIN - 2 ) - 2 ); PartitionBarsView::PartitionBarsView( QWidget* parent ) @@ -55,25 +57,21 @@ PartitionBarsView::PartitionBarsView( QWidget* parent ) , canBeSelected( []( const QModelIndex& ) { return true; } ) , m_hoveredIndex( QModelIndex() ) { - this->setObjectName("partitionBarView"); + this->setObjectName( "partitionBarView" ); setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ); setFrameStyle( QFrame::NoFrame ); setSelectionBehavior( QAbstractItemView::SelectRows ); setSelectionMode( QAbstractItemView::SingleSelection ); // Debug - connect( this, &PartitionBarsView::clicked, - this, [=]( const QModelIndex& index ) - { + connect( this, &PartitionBarsView::clicked, this, [=]( const QModelIndex& index ) { cDebug() << "Clicked row" << index.row(); } ); setMouseTracking( true ); } -PartitionBarsView::~PartitionBarsView() -{ -} +PartitionBarsView::~PartitionBarsView() {} void @@ -117,12 +115,9 @@ PartitionBarsView::paintEvent( QPaintEvent* event ) void PartitionBarsView::drawSection( QPainter* painter, const QRect& rect_, int x, int width, const QModelIndex& index ) { - QColor color = index.isValid() ? - index.data( Qt::DecorationRole ).value< QColor >() : - ColorUtils::unknownDisklabelColor(); - bool isFreeSpace = index.isValid() ? - index.data( PartitionModel::IsFreeSpaceRole ).toBool() : - true; + QColor color + = index.isValid() ? index.data( Qt::DecorationRole ).value< QColor >() : ColorUtils::unknownDisklabelColor(); + bool isFreeSpace = index.isValid() ? index.data( PartitionModel::IsFreeSpaceRole ).toBool() : true; QRect rect = rect_; const int y = rect.y(); @@ -134,14 +129,17 @@ PartitionBarsView::drawSection( QPainter* painter, const QRect& rect_, int x, in rect.adjust( 0, 0, -1, -1 ); - if ( selectionMode() != QAbstractItemView::NoSelection && // no hover without selection - m_hoveredIndex.isValid() && - index == m_hoveredIndex ) + if ( selectionMode() != QAbstractItemView::NoSelection && // no hover without selection + m_hoveredIndex.isValid() && index == m_hoveredIndex ) { if ( canBeSelected( index ) ) + { painter->setBrush( color.lighter( 115 ) ); + } else + { painter->setBrush( color ); + } } else { @@ -156,7 +154,9 @@ PartitionBarsView::drawSection( QPainter* painter, const QRect& rect_, int x, in // Draw shade if ( !isFreeSpace ) + { rect.adjust( 2, 2, -2, -2 ); + } QLinearGradient gradient( 0, 0, 0, height / 2 ); @@ -169,11 +169,8 @@ PartitionBarsView::drawSection( QPainter* painter, const QRect& rect_, int x, in painter->setBrush( gradient ); painter->drawRoundedRect( rect, radius, radius ); - if ( selectionMode() != QAbstractItemView::NoSelection && - index.isValid() && - selectionModel() && - !selectionModel()->selectedIndexes().isEmpty() && - selectionModel()->selectedIndexes().first() == index ) + if ( selectionMode() != QAbstractItemView::NoSelection && index.isValid() && selectionModel() + && !selectionModel()->selectedIndexes().isEmpty() && selectionModel()->selectedIndexes().first() == index ) { painter->setPen( QPen( borderColor, 1 ) ); QColor highlightColor = QPalette().highlight().color(); @@ -183,22 +180,21 @@ PartitionBarsView::drawSection( QPainter* painter, const QRect& rect_, int x, in QRect selectionRect = rect; selectionRect.setX( x + 1 ); - selectionRect.setWidth( width - 3 ); //account for the previous rect.adjust + selectionRect.setWidth( width - 3 ); //account for the previous rect.adjust - if ( rect.x() > selectionRect.x() ) //hack for first item + if ( rect.x() > selectionRect.x() ) //hack for first item + { selectionRect.adjust( rect.x() - selectionRect.x(), 0, 0, 0 ); + } - if ( rect.right() < selectionRect.right() ) //hack for last item - selectionRect.adjust( 0, 0, - ( selectionRect.right() - rect.right() ), 0 ); + if ( rect.right() < selectionRect.right() ) //hack for last item + { + selectionRect.adjust( 0, 0, -( selectionRect.right() - rect.right() ), 0 ); + } - selectionRect.adjust( SELECTION_MARGIN, - SELECTION_MARGIN, - -SELECTION_MARGIN, - -SELECTION_MARGIN ); + selectionRect.adjust( SELECTION_MARGIN, SELECTION_MARGIN, -SELECTION_MARGIN, -SELECTION_MARGIN ); - painter->drawRoundedRect( selectionRect, - radius - 1, - radius - 1 ); + painter->drawRoundedRect( selectionRect, radius - 1, radius - 1 ); } painter->translate( -0.5, -0.5 ); @@ -210,7 +206,9 @@ PartitionBarsView::drawPartitions( QPainter* painter, const QRect& rect, const Q { PartitionModel* modl = qobject_cast< PartitionModel* >( model() ); if ( !modl ) + { return; + } const int totalWidth = rect.width(); auto pair = computeItemsVector( parent ); @@ -222,29 +220,29 @@ PartitionBarsView::drawPartitions( QPainter* painter, const QRect& rect, const Q const auto& item = items[ row ]; int width; if ( row < items.count() - 1 ) + { width = totalWidth * ( item.size / total ); + } else - // Make sure we fill the last pixel column + // Make sure we fill the last pixel column + { width = rect.right() - x + 1; + } drawSection( painter, rect, x, width, item.index ); - if ( m_nestedPartitionsMode == DrawNestedPartitions && - modl->hasChildren( item.index ) ) + if ( m_nestedPartitionsMode == DrawNestedPartitions && modl->hasChildren( item.index ) ) { - QRect subRect( - x + EXTENDED_PARTITION_MARGIN, - rect.y() + EXTENDED_PARTITION_MARGIN, - width - 2 * EXTENDED_PARTITION_MARGIN, - rect.height() - 2 * EXTENDED_PARTITION_MARGIN - ); + QRect subRect( x + EXTENDED_PARTITION_MARGIN, + rect.y() + EXTENDED_PARTITION_MARGIN, + width - 2 * EXTENDED_PARTITION_MARGIN, + rect.height() - 2 * EXTENDED_PARTITION_MARGIN ); drawPartitions( painter, subRect, item.index ); } x += width; } - if ( !items.count() && - !modl->device()->partitionTable() ) // No disklabel or unknown + if ( !items.count() && !modl->device()->partitionTable() ) // No disklabel or unknown { int width = rect.right() - rect.x() + 1; drawSection( painter, rect, rect.x(), width, QModelIndex() ); @@ -260,13 +258,13 @@ PartitionBarsView::indexAt( const QPoint& point ) const QModelIndex -PartitionBarsView::indexAt( const QPoint &point, - const QRect &rect, - const QModelIndex& parent ) const +PartitionBarsView::indexAt( const QPoint& point, const QRect& rect, const QModelIndex& parent ) const { PartitionModel* modl = qobject_cast< PartitionModel* >( model() ); if ( !modl ) + { return QModelIndex(); + } const int totalWidth = rect.width(); auto pair = computeItemsVector( parent ); @@ -278,23 +276,24 @@ PartitionBarsView::indexAt( const QPoint &point, const auto& item = items[ row ]; int width; if ( row < items.count() - 1 ) + { width = totalWidth * ( item.size / total ); + } else - // Make sure we fill the last pixel column + // Make sure we fill the last pixel column + { width = rect.right() - x + 1; + } QRect thisItemRect( x, rect.y(), width, rect.height() ); if ( thisItemRect.contains( point ) ) { - if ( m_nestedPartitionsMode == DrawNestedPartitions && - modl->hasChildren( item.index ) ) + if ( m_nestedPartitionsMode == DrawNestedPartitions && modl->hasChildren( item.index ) ) { - QRect subRect( - x + EXTENDED_PARTITION_MARGIN, - rect.y() + EXTENDED_PARTITION_MARGIN, - width - 2 * EXTENDED_PARTITION_MARGIN, - rect.height() - 2 * EXTENDED_PARTITION_MARGIN - ); + QRect subRect( x + EXTENDED_PARTITION_MARGIN, + rect.y() + EXTENDED_PARTITION_MARGIN, + width - 2 * EXTENDED_PARTITION_MARGIN, + rect.height() - 2 * EXTENDED_PARTITION_MARGIN ); if ( subRect.contains( point ) ) { @@ -302,7 +301,7 @@ PartitionBarsView::indexAt( const QPoint &point, } return item.index; } - else // contains but no children, we win + else // contains but no children, we win { return item.index; } @@ -322,13 +321,13 @@ PartitionBarsView::visualRect( const QModelIndex& index ) const QRect -PartitionBarsView::visualRect( const QModelIndex& index, - const QRect& rect, - const QModelIndex& parent ) const +PartitionBarsView::visualRect( const QModelIndex& index, const QRect& rect, const QModelIndex& parent ) const { PartitionModel* modl = qobject_cast< PartitionModel* >( model() ); if ( !modl ) + { return QRect(); + } const int totalWidth = rect.width(); auto pair = computeItemsVector( parent ); @@ -340,29 +339,34 @@ PartitionBarsView::visualRect( const QModelIndex& index, const auto& item = items[ row ]; int width; if ( row < items.count() - 1 ) + { width = totalWidth * ( item.size / total ); + } else - // Make sure we fill the last pixel column + // Make sure we fill the last pixel column + { width = rect.right() - x + 1; + } QRect thisItemRect( x, rect.y(), width, rect.height() ); if ( item.index == index ) - return thisItemRect; - - if ( m_nestedPartitionsMode == DrawNestedPartitions && - modl->hasChildren( item.index ) && - index.parent() == item.index ) { - QRect subRect( - x + EXTENDED_PARTITION_MARGIN, - rect.y() + EXTENDED_PARTITION_MARGIN, - width - 2 * EXTENDED_PARTITION_MARGIN, - rect.height() - 2 * EXTENDED_PARTITION_MARGIN - ); + return thisItemRect; + } + + if ( m_nestedPartitionsMode == DrawNestedPartitions && modl->hasChildren( item.index ) + && index.parent() == item.index ) + { + QRect subRect( x + EXTENDED_PARTITION_MARGIN, + rect.y() + EXTENDED_PARTITION_MARGIN, + width - 2 * EXTENDED_PARTITION_MARGIN, + rect.height() - 2 * EXTENDED_PARTITION_MARGIN ); QRect candidateVisualRect = visualRect( index, subRect, item.index ); if ( !candidateVisualRect.isNull() ) + { return candidateVisualRect; + } } x += width; @@ -405,23 +409,18 @@ void PartitionBarsView::setSelectionModel( QItemSelectionModel* selectionModel ) { QAbstractItemView::setSelectionModel( selectionModel ); - connect( selectionModel, &QItemSelectionModel::selectionChanged, - this, [=] - { - viewport()->repaint(); - } ); + connect( selectionModel, &QItemSelectionModel::selectionChanged, this, [=] { viewport()->repaint(); } ); } void -PartitionBarsView::setSelectionFilter( std::function< bool ( const QModelIndex& ) > canBeSelected ) +PartitionBarsView::setSelectionFilter( std::function< bool( const QModelIndex& ) > canBeSelected ) { this->canBeSelected = canBeSelected; } -QModelIndex -PartitionBarsView::moveCursor( CursorAction, Qt::KeyboardModifiers ) +QModelIndex PartitionBarsView::moveCursor( CursorAction, Qt::KeyboardModifiers ) { return QModelIndex(); } @@ -456,7 +455,9 @@ PartitionBarsView::setSelection( const QRect& rect, QItemSelectionModel::Selecti QModelIndex eventIndex = indexAt( QPoint( x2, y2 ) ); if ( canBeSelected( eventIndex ) ) + { selectionModel()->select( eventIndex, flags ); + } viewport()->repaint(); } @@ -480,9 +481,13 @@ PartitionBarsView::mouseMoveEvent( QMouseEvent* event ) if ( oldHoveredIndex != m_hoveredIndex ) { if ( m_hoveredIndex.isValid() && !canBeSelected( m_hoveredIndex ) ) + { QGuiApplication::setOverrideCursor( Qt::ForbiddenCursor ); + } else + { QGuiApplication::restoreOverrideCursor(); + } viewport()->repaint(); } @@ -506,16 +511,20 @@ PartitionBarsView::mousePressEvent( QMouseEvent* event ) { QModelIndex candidateIndex = indexAt( event->pos() ); if ( canBeSelected( candidateIndex ) ) + { QAbstractItemView::mousePressEvent( event ); + } else + { event->accept(); + } } void PartitionBarsView::updateGeometries() { - updateGeometry(); //get a new rect() for redrawing all the labels + updateGeometry(); //get a new rect() for redrawing all the labels } @@ -529,11 +538,9 @@ PartitionBarsView::computeItemsVector( const QModelIndex& parent ) const for ( int row = 0; row < count; ++row ) { QModelIndex index = model()->index( row, 0, parent ); - if ( m_nestedPartitionsMode == NoNestedPartitions && - model()->hasChildren( index ) ) + if ( m_nestedPartitionsMode == NoNestedPartitions && model()->hasChildren( index ) ) { - QPair< QVector< PartitionBarsView::Item >, qreal > childVect = - computeItemsVector( index ); + QPair< QVector< PartitionBarsView::Item >, qreal > childVect = computeItemsVector( index ); items += childVect.first; total += childVect.second; } @@ -552,8 +559,9 @@ PartitionBarsView::computeItemsVector( const QModelIndex& parent ) const qreal adjustedTotal = total; for ( int row = 0; row < count; ++row ) { - if ( items[ row ].size < 0.01 * total ) // If this item is smaller than 1% of everything, - { // force its width to 1%. + if ( items[ row ].size < 0.01 * total ) // If this item is smaller than 1% of everything, + { + // force its width to 1%. adjustedTotal -= items[ row ].size; items[ row ].size = 0.01 * total; adjustedTotal += items[ row ].size; @@ -562,4 +570,3 @@ PartitionBarsView::computeItemsVector( const QModelIndex& parent ) const return qMakePair( items, adjustedTotal ); } - diff --git a/src/modules/partition/gui/PartitionBarsView.h b/src/modules/partition/gui/PartitionBarsView.h index 0d5051b41..1f0100ffa 100644 --- a/src/modules/partition/gui/PartitionBarsView.h +++ b/src/modules/partition/gui/PartitionBarsView.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/PartitionDialogHelpers.cpp b/src/modules/partition/gui/PartitionDialogHelpers.cpp index 112d12cea..8ab1f38d7 100644 --- a/src/modules/partition/gui/PartitionDialogHelpers.cpp +++ b/src/modules/partition/gui/PartitionDialogHelpers.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2016, Teo Mrnjavac - * Copyright 2018-2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -32,16 +33,18 @@ QStringList standardMountPoints() { - QStringList mountPoints{ "/", "/boot", "/home", "/opt", "/srv", "/usr", "/var" }; + QStringList mountPoints { "/", "/boot", "/home", "/opt", "/srv", "/usr", "/var" }; if ( PartUtils::isEfiSystem() ) + { mountPoints << Calamares::JobQueue::instance()->globalStorage()->value( "efiSystemPartition" ).toString(); + } mountPoints.removeDuplicates(); mountPoints.sort(); return mountPoints; } void -standardMountPoints(QComboBox& combo) +standardMountPoints( QComboBox& combo ) { combo.clear(); combo.addItem( QObject::tr( "(no mount point)" ) ); @@ -49,25 +52,29 @@ standardMountPoints(QComboBox& combo) } void -standardMountPoints(QComboBox& combo, const QString& selected) +standardMountPoints( QComboBox& combo, const QString& selected ) { standardMountPoints( combo ); setSelectedMountPoint( combo, selected ); } QString -selectedMountPoint(QComboBox& combo) +selectedMountPoint( QComboBox& combo ) { if ( combo.currentIndex() == 0 ) + { return QString(); + } return combo.currentText(); } void -setSelectedMountPoint(QComboBox& combo, const QString& selected) +setSelectedMountPoint( QComboBox& combo, const QString& selected ) { if ( selected.isEmpty() ) + { combo.setCurrentIndex( 0 ); // (no mount point) + } else { for ( int i = 0; i < combo.count(); ++i ) @@ -77,7 +84,7 @@ setSelectedMountPoint(QComboBox& combo, const QString& selected) return; } combo.addItem( selected ); - combo.setCurrentIndex( combo.count() - 1); + combo.setCurrentIndex( combo.count() - 1 ); } } @@ -89,8 +96,9 @@ flagsFromList( const QListWidget& list ) for ( int i = 0; i < list.count(); i++ ) if ( list.item( i )->checkState() == Qt::Checked ) - flags |= static_cast< PartitionTable::Flag >( - list.item( i )->data( Qt::UserRole ).toInt() ); + { + flags |= static_cast< PartitionTable::Flag >( list.item( i )->data( Qt::UserRole ).toInt() ); + } return flags; } @@ -108,9 +116,7 @@ setFlagList( QListWidget& list, PartitionTable::Flags available, PartitionTable: list.addItem( item ); item->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsEnabled ); item->setData( Qt::UserRole, f ); - item->setCheckState( ( checked & f ) ? - Qt::Checked : - Qt::Unchecked ); + item->setCheckState( ( checked & f ) ? Qt::Checked : Qt::Unchecked ); } f <<= 1; diff --git a/src/modules/partition/gui/PartitionDialogHelpers.h b/src/modules/partition/gui/PartitionDialogHelpers.h index 594142993..fd485a690 100644 --- a/src/modules/partition/gui/PartitionDialogHelpers.h +++ b/src/modules/partition/gui/PartitionDialogHelpers.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2016, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -54,10 +55,18 @@ void standardMountPoints( QComboBox&, const QString& selected ); * to blank, to allow easy detection of no-mount-selected. */ QString selectedMountPoint( QComboBox& combo ); -static inline QString selectedMountPoint(QComboBox* combo) { return selectedMountPoint(*combo); } +static inline QString +selectedMountPoint( QComboBox* combo ) +{ + return selectedMountPoint( *combo ); +} void setSelectedMountPoint( QComboBox& combo, const QString& selected ); -static inline void setSelectedMountPoint(QComboBox* combo, const QString& selected) { setSelectedMountPoint( *combo, selected); } +static inline void +setSelectedMountPoint( QComboBox* combo, const QString& selected ) +{ + setSelectedMountPoint( *combo, selected ); +} /** * Get the flags that have been checked in the list widget. diff --git a/src/modules/partition/gui/PartitionLabelsView.cpp b/src/modules/partition/gui/PartitionLabelsView.cpp index 270710e02..e42e9de89 100644 --- a/src/modules/partition/gui/PartitionLabelsView.cpp +++ b/src/modules/partition/gui/PartitionLabelsView.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,8 +20,8 @@ #include "PartitionLabelsView.h" -#include "core/PartitionModel.h" #include "core/ColorUtils.h" +#include "core/PartitionModel.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" @@ -39,8 +40,7 @@ using CalamaresUtils::operator""_MiB; static const int LAYOUT_MARGIN = 4; -static const int LABEL_PARTITION_SQUARE_MARGIN = - qMax( QFontMetrics( CalamaresUtils::defaultFont() ).ascent() - 2, 18 ); +static const int LABEL_PARTITION_SQUARE_MARGIN = qMax( QFontMetrics( CalamaresUtils::defaultFont() ).ascent() - 2, 18 ); static const int LABELS_MARGIN = LABEL_PARTITION_SQUARE_MARGIN; static const int CORNER_RADIUS = 2; @@ -63,14 +63,12 @@ PartitionLabelsView::PartitionLabelsView( QWidget* parent ) setFrameStyle( QFrame::NoFrame ); setSelectionBehavior( QAbstractItemView::SelectRows ); setSelectionMode( QAbstractItemView::SingleSelection ); - this->setObjectName("partitionLabel"); + this->setObjectName( "partitionLabel" ); setMouseTracking( true ); } -PartitionLabelsView::~PartitionLabelsView() -{ -} +PartitionLabelsView::~PartitionLabelsView() {} QSize @@ -80,7 +78,6 @@ PartitionLabelsView::minimumSizeHint() const } - QSize PartitionLabelsView::sizeHint() const { @@ -150,7 +147,9 @@ PartitionLabelsView::getIndexesToDraw( const QModelIndex& parent ) const QAbstractItemModel* modl = model(); if ( !modl ) + { return list; + } for ( int row = 0; row < modl->rowCount( parent ); ++row ) { @@ -160,15 +159,21 @@ PartitionLabelsView::getIndexesToDraw( const QModelIndex& parent ) const // To save vertical space, we choose to hide short instances of free space. // Arbitrary limit: 10MiB. const qint64 maxHiddenB = 10_MiB; - if ( index.data( PartitionModel::IsFreeSpaceRole ).toBool() && - index.data( PartitionModel::SizeRole ).toLongLong() < maxHiddenB ) + if ( index.data( PartitionModel::IsFreeSpaceRole ).toBool() + && index.data( PartitionModel::SizeRole ).toLongLong() < maxHiddenB ) + { continue; + } if ( !modl->hasChildren( index ) || !m_extendedPartitionHidden ) + { list.append( index ); + } if ( modl->hasChildren( index ) ) + { list.append( getIndexesToDraw( index ) ); + } } return list; } @@ -189,64 +194,74 @@ PartitionLabelsView::buildTexts( const QModelIndex& index ) const } else { - QString mountPoint = index.sibling( index.row(), - PartitionModel::MountPointColumn ) - .data().toString(); + QString mountPoint = index.sibling( index.row(), PartitionModel::MountPointColumn ).data().toString(); if ( mountPoint == "/" ) - firstLine = m_customNewRootLabel.isEmpty() ? - tr( "Root" ) : - m_customNewRootLabel; + { + firstLine = m_customNewRootLabel.isEmpty() ? tr( "Root" ) : m_customNewRootLabel; + } else if ( mountPoint == "/home" ) + { firstLine = tr( "Home" ); + } else if ( mountPoint == "/boot" ) + { firstLine = tr( "Boot" ); - else if ( mountPoint.contains( "/efi" ) && - index.data( PartitionModel::FileSystemTypeRole ).toInt() == FileSystem::Fat32 ) + } + else if ( mountPoint.contains( "/efi" ) + && index.data( PartitionModel::FileSystemTypeRole ).toInt() == FileSystem::Fat32 ) + { firstLine = tr( "EFI system" ); + } else if ( index.data( PartitionModel::FileSystemTypeRole ).toInt() == FileSystem::LinuxSwap ) + { firstLine = tr( "Swap" ); + } else if ( !mountPoint.isEmpty() ) + { firstLine = tr( "New partition for %1" ).arg( mountPoint ); + } else + { firstLine = tr( "New partition" ); + } } } else if ( index.data( PartitionModel::OsproberNameRole ).toString().isEmpty() ) { firstLine = index.data().toString(); if ( firstLine.startsWith( "/dev/" ) ) - firstLine.remove( 0, 5 ); // "/dev/" + { + firstLine.remove( 0, 5 ); // "/dev/" + } } else + { firstLine = index.data( PartitionModel::OsproberNameRole ).toString(); + } - if ( index.data( PartitionModel::IsFreeSpaceRole ).toBool() || - index.data( PartitionModel::FileSystemTypeRole ).toInt() == FileSystem::Extended ) - secondLine = index.sibling( index.row(), - PartitionModel::SizeColumn ) - .data().toString(); + if ( index.data( PartitionModel::IsFreeSpaceRole ).toBool() + || index.data( PartitionModel::FileSystemTypeRole ).toInt() == FileSystem::Extended ) + { + secondLine = index.sibling( index.row(), PartitionModel::SizeColumn ).data().toString(); + } else //: size[number] filesystem[name] secondLine = tr( "%1 %2" ) - .arg( index.sibling( index.row(), - PartitionModel::SizeColumn ) - .data().toString() ) - .arg( index.sibling( index.row(), - PartitionModel::FileSystemColumn ) - .data().toString() ); + .arg( index.sibling( index.row(), PartitionModel::SizeColumn ).data().toString() ) + .arg( index.sibling( index.row(), PartitionModel::FileSystemColumn ).data().toString() ); return { firstLine, secondLine }; } void -PartitionLabelsView::drawLabels( QPainter* painter, - const QRect& rect, - const QModelIndex& parent ) +PartitionLabelsView::drawLabels( QPainter* painter, const QRect& rect, const QModelIndex& parent ) { PartitionModel* modl = qobject_cast< PartitionModel* >( model() ); if ( !modl ) + { return; + } const QModelIndexList indexesToDraw = getIndexesToDraw( parent ); @@ -260,20 +275,19 @@ PartitionLabelsView::drawLabels( QPainter* painter, QColor labelColor = index.data( Qt::DecorationRole ).value< QColor >(); - if ( label_x + labelSize.width() > rect.width() ) //wrap to new line if overflow + if ( label_x + labelSize.width() > rect.width() ) //wrap to new line if overflow { label_x = rect.x(); label_y += labelSize.height() + labelSize.height() / 4; } // Draw hover - if ( selectionMode() != QAbstractItemView::NoSelection && // no hover without selection - m_hoveredIndex.isValid() && - index == m_hoveredIndex ) + if ( selectionMode() != QAbstractItemView::NoSelection && // no hover without selection + m_hoveredIndex.isValid() && index == m_hoveredIndex ) { painter->save(); QRect labelRect( QPoint( label_x, label_y ), labelSize ); - labelRect.adjust( 0, -LAYOUT_MARGIN, 0, -2*LAYOUT_MARGIN ); + labelRect.adjust( 0, -LAYOUT_MARGIN, 0, -2 * LAYOUT_MARGIN ); painter->translate( 0.5, 0.5 ); QRect hoverRect = labelRect.adjusted( 0, 0, -1, -1 ); painter->setBrush( QPalette().window().color().lighter( 102 ) ); @@ -285,19 +299,15 @@ PartitionLabelsView::drawLabels( QPainter* painter, } // Is this element the selected one? - bool sel = selectionMode() != QAbstractItemView::NoSelection && - index.isValid() && - selectionModel() && - !selectionModel()->selectedIndexes().isEmpty() && - selectionModel()->selectedIndexes().first() == index; + bool sel = selectionMode() != QAbstractItemView::NoSelection && index.isValid() && selectionModel() + && !selectionModel()->selectedIndexes().isEmpty() && selectionModel()->selectedIndexes().first() == index; drawLabel( painter, texts, labelColor, QPoint( label_x, label_y ), sel ); label_x += labelSize.width() + LABELS_MARGIN; } - if ( !modl->rowCount() && - !modl->device()->partitionTable() ) // No disklabel or unknown + if ( !modl->rowCount() && !modl->device()->partitionTable() ) // No disklabel or unknown { QStringList texts = buildUnknownDisklabelTexts( modl->device() ); QColor labelColor = ColorUtils::unknownDisklabelColor(); @@ -311,7 +321,9 @@ PartitionLabelsView::sizeForAllLabels( int maxLineWidth ) const { PartitionModel* modl = qobject_cast< PartitionModel* >( model() ); if ( !modl ) + { return QSize(); + } const QModelIndexList indexesToDraw = getIndexesToDraw( QModelIndex() ); @@ -337,15 +349,12 @@ PartitionLabelsView::sizeForAllLabels( int maxLineWidth ) const singleLabelHeight = qMax( singleLabelHeight, labelSize.height() ); } - if ( !modl->rowCount() && - !modl->device()->partitionTable() ) // Unknown or no disklabel + if ( !modl->rowCount() && !modl->device()->partitionTable() ) // Unknown or no disklabel { - singleLabelHeight = sizeForLabel( buildUnknownDisklabelTexts( modl->device() ) ) - .height(); + singleLabelHeight = sizeForLabel( buildUnknownDisklabelTexts( modl->device() ) ).height(); } - int totalHeight = numLines * singleLabelHeight + - ( numLines - 1 ) * singleLabelHeight / 4; //spacings + int totalHeight = numLines * singleLabelHeight + ( numLines - 1 ) * singleLabelHeight / 4; //spacings return QSize( maxLineWidth, totalHeight ); } @@ -363,7 +372,7 @@ PartitionLabelsView::sizeForLabel( const QStringList& text ) const vertOffset += textSize.height(); width = qMax( width, textSize.width() ); } - width += LABEL_PARTITION_SQUARE_MARGIN; //for the color square + width += LABEL_PARTITION_SQUARE_MARGIN; //for the color square return QSize( width, vertOffset ); } @@ -381,22 +390,21 @@ PartitionLabelsView::drawLabel( QPainter* painter, for ( const QString& textLine : text ) { QSize textSize = painter->fontMetrics().size( Qt::TextSingleLine, textLine ); - painter->drawText( pos.x()+LABEL_PARTITION_SQUARE_MARGIN, - pos.y() + vertOffset + textSize.height() / 2, - textLine ); + painter->drawText( + pos.x() + LABEL_PARTITION_SQUARE_MARGIN, pos.y() + vertOffset + textSize.height() / 2, textLine ); vertOffset += textSize.height(); painter->setPen( Qt::gray ); width = qMax( width, textSize.width() ); } - QRect partitionSquareRect( pos.x(), - pos.y() - 3, - LABEL_PARTITION_SQUARE_MARGIN - 5, - LABEL_PARTITION_SQUARE_MARGIN - 5 ); + QRect partitionSquareRect( + pos.x(), pos.y() - 3, LABEL_PARTITION_SQUARE_MARGIN - 5, LABEL_PARTITION_SQUARE_MARGIN - 5 ); drawPartitionSquare( painter, partitionSquareRect, color ); if ( selected ) + { drawSelectionSquare( painter, partitionSquareRect.adjusted( 2, 2, -2, -2 ), color ); + } painter->setPen( Qt::black ); } @@ -407,7 +415,9 @@ PartitionLabelsView::indexAt( const QPoint& point ) const { PartitionModel* modl = qobject_cast< PartitionModel* >( model() ); if ( !modl ) + { return QModelIndex(); + } const QModelIndexList indexesToDraw = getIndexesToDraw( QModelIndex() ); @@ -420,7 +430,7 @@ PartitionLabelsView::indexAt( const QPoint& point ) const QSize labelSize = sizeForLabel( texts ); - if ( label_x + labelSize.width() > rect.width() ) //wrap to new line if overflow + if ( label_x + labelSize.width() > rect.width() ) //wrap to new line if overflow { label_x = rect.x(); label_y += labelSize.height() + labelSize.height() / 4; @@ -428,7 +438,9 @@ PartitionLabelsView::indexAt( const QPoint& point ) const QRect labelRect( QPoint( label_x, label_y ), labelSize ); if ( labelRect.contains( point ) ) + { return index; + } label_x += labelSize.width() + LABELS_MARGIN; } @@ -442,7 +454,9 @@ PartitionLabelsView::visualRect( const QModelIndex& idx ) const { PartitionModel* modl = qobject_cast< PartitionModel* >( model() ); if ( !modl ) + { return QRect(); + } const QModelIndexList indexesToDraw = getIndexesToDraw( QModelIndex() ); @@ -455,14 +469,16 @@ PartitionLabelsView::visualRect( const QModelIndex& idx ) const QSize labelSize = sizeForLabel( texts ); - if ( label_x + labelSize.width() > rect.width() ) //wrap to new line if overflow + if ( label_x + labelSize.width() > rect.width() ) //wrap to new line if overflow { label_x = rect.x(); label_y += labelSize.height() + labelSize.height() / 4; } if ( idx.isValid() && idx == index ) + { return QRect( QPoint( label_x, label_y ), labelSize ); + } label_x += labelSize.width() + LABELS_MARGIN; } @@ -514,11 +530,7 @@ void PartitionLabelsView::setSelectionModel( QItemSelectionModel* selectionModel ) { QAbstractItemView::setSelectionModel( selectionModel ); - connect( selectionModel, &QItemSelectionModel::selectionChanged, - this, [=] - { - viewport()->repaint(); - } ); + connect( selectionModel, &QItemSelectionModel::selectionChanged, this, [=] { viewport()->repaint(); } ); } @@ -560,7 +572,9 @@ PartitionLabelsView::setSelection( const QRect& rect, QItemSelectionModel::Selec { QModelIndex eventIndex = indexAt( rect.topLeft() ); if ( m_canBeSelected( eventIndex ) ) + { selectionModel()->select( eventIndex, flags ); + } } @@ -582,9 +596,13 @@ PartitionLabelsView::mouseMoveEvent( QMouseEvent* event ) if ( oldHoveredIndex != m_hoveredIndex ) { if ( m_hoveredIndex.isValid() && !m_canBeSelected( m_hoveredIndex ) ) + { QGuiApplication::setOverrideCursor( Qt::ForbiddenCursor ); + } else + { QGuiApplication::restoreOverrideCursor(); + } viewport()->repaint(); } @@ -610,14 +628,18 @@ PartitionLabelsView::mousePressEvent( QMouseEvent* event ) { QModelIndex candidateIndex = indexAt( event->pos() ); if ( m_canBeSelected( candidateIndex ) ) + { QAbstractItemView::mousePressEvent( event ); + } else + { event->accept(); + } } void PartitionLabelsView::updateGeometries() { - updateGeometry(); //get a new rect() for redrawing all the labels + updateGeometry(); //get a new rect() for redrawing all the labels } diff --git a/src/modules/partition/gui/PartitionLabelsView.h b/src/modules/partition/gui/PartitionLabelsView.h index e461a8dd8..45b2b3407 100644 --- a/src/modules/partition/gui/PartitionLabelsView.h +++ b/src/modules/partition/gui/PartitionLabelsView.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -79,8 +80,7 @@ private: void drawLabels( QPainter* painter, const QRect& rect, const QModelIndex& parent ); QSize sizeForAllLabels( int maxLineWidth ) const; QSize sizeForLabel( const QStringList& text ) const; - void drawLabel( QPainter* painter, const QStringList& text, const QColor& color, - const QPoint& pos , bool selected ); + void drawLabel( QPainter* painter, const QStringList& text, const QColor& color, const QPoint& pos, bool selected ); QModelIndexList getIndexesToDraw( const QModelIndex& parent ) const; QStringList buildTexts( const QModelIndex& index ) const; @@ -91,4 +91,4 @@ private: QPersistentModelIndex m_hoveredIndex; }; -#endif // PARTITIONLABELSVIEW_H +#endif // PARTITIONLABELSVIEW_H diff --git a/src/modules/partition/gui/PartitionPage.cpp b/src/modules/partition/gui/PartitionPage.cpp index d2ad49c23..3b73f061e 100644 --- a/src/modules/partition/gui/PartitionPage.cpp +++ b/src/modules/partition/gui/PartitionPage.cpp @@ -1,11 +1,12 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2018-2019, Adriaan de Groot - * Copyright 2018, Andrius Štikonas - * Copyright 2018, Caio Jordão Carvalho - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Andrius Štikonas + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,19 +27,19 @@ // Local #include "core/BootLoaderModel.h" #include "core/DeviceModel.h" +#include "core/KPMHelpers.h" +#include "core/PartUtils.h" #include "core/PartitionCoreModule.h" #include "core/PartitionInfo.h" #include "core/PartitionModel.h" -#include "core/PartUtils.h" -#include "core/KPMHelpers.h" #include "gui/CreatePartitionDialog.h" #include "gui/CreateVolumeGroupDialog.h" #include "gui/EditExistingPartitionDialog.h" #include "gui/ResizeVolumeGroupDialog.h" #include "gui/ScanningDialog.h" -#include "ui_PartitionPage.h" #include "ui_CreatePartitionTableDialog.h" +#include "ui_PartitionPage.h" #include "GlobalStorage.h" #include "JobQueue.h" @@ -58,34 +59,34 @@ #include // Qt +#include +#include #include #include #include #include -#include -#include #include PartitionPage::PartitionPage( PartitionCoreModule* core, QWidget* parent ) : QWidget( parent ) , m_ui( new Ui_PartitionPage ) , m_core( core ) - , m_lastSelectedBootLoaderIndex(-1) + , m_lastSelectedBootLoaderIndex( -1 ) , m_isEfi( false ) { m_isEfi = PartUtils::isEfiSystem(); m_ui->setupUi( this ); m_ui->partitionLabelsView->setVisible( - Calamares::JobQueue::instance()->globalStorage()-> - value( "alwaysShowPartitionLabels" ).toBool() ); + Calamares::JobQueue::instance()->globalStorage()->value( "alwaysShowPartitionLabels" ).toBool() ); m_ui->deviceComboBox->setModel( m_core->deviceModel() ); m_ui->bootLoaderComboBox->setModel( m_core->bootLoaderModel() ); - connect( m_core->bootLoaderModel(), &QAbstractItemModel::modelReset, this, &PartitionPage::restoreSelectedBootLoader ); - PartitionBarsView::NestedPartitionsMode mode = Calamares::JobQueue::instance()->globalStorage()-> - value( "drawNestedPartitions" ).toBool() ? - PartitionBarsView::DrawNestedPartitions : - PartitionBarsView::NoNestedPartitions; + connect( + m_core->bootLoaderModel(), &QAbstractItemModel::modelReset, this, &PartitionPage::restoreSelectedBootLoader ); + PartitionBarsView::NestedPartitionsMode mode + = Calamares::JobQueue::instance()->globalStorage()->value( "drawNestedPartitions" ).toBool() + ? PartitionBarsView::DrawNestedPartitions + : PartitionBarsView::NoNestedPartitions; m_ui->partitionBarsView->setNestedPartitionsMode( mode ); updateButtons(); updateBootLoaderInstallPath(); @@ -93,23 +94,35 @@ PartitionPage::PartitionPage( PartitionCoreModule* core, QWidget* parent ) updateFromCurrentDevice(); connect( m_ui->deviceComboBox, &QComboBox::currentTextChanged, this, &PartitionPage::updateFromCurrentDevice ); - connect( m_ui->bootLoaderComboBox, QOverload::of(&QComboBox::activated), this, &PartitionPage::updateSelectedBootLoaderIndex ); - connect( m_ui->bootLoaderComboBox, &QComboBox::currentTextChanged, this, &PartitionPage::updateBootLoaderInstallPath ); + connect( m_ui->bootLoaderComboBox, + QOverload< int >::of( &QComboBox::activated ), + this, + &PartitionPage::updateSelectedBootLoaderIndex ); + connect( + m_ui->bootLoaderComboBox, &QComboBox::currentTextChanged, this, &PartitionPage::updateBootLoaderInstallPath ); connect( m_core, &PartitionCoreModule::isDirtyChanged, m_ui->revertButton, &QWidget::setEnabled ); - connect( m_ui->partitionTreeView, &QAbstractItemView::doubleClicked, this, &PartitionPage::onPartitionViewActivated ); + connect( + m_ui->partitionTreeView, &QAbstractItemView::doubleClicked, this, &PartitionPage::onPartitionViewActivated ); connect( m_ui->revertButton, &QAbstractButton::clicked, this, &PartitionPage::onRevertClicked ); connect( m_ui->newVolumeGroupButton, &QAbstractButton::clicked, this, &PartitionPage::onNewVolumeGroupClicked ); - connect( m_ui->resizeVolumeGroupButton, &QAbstractButton::clicked, this, &PartitionPage::onResizeVolumeGroupClicked ); - connect( m_ui->deactivateVolumeGroupButton, &QAbstractButton::clicked, this, &PartitionPage::onDeactivateVolumeGroupClicked ); - connect( m_ui->removeVolumeGroupButton, &QAbstractButton::clicked, this, &PartitionPage::onRemoveVolumeGroupClicked ); - connect( m_ui->newPartitionTableButton, &QAbstractButton::clicked, this, &PartitionPage::onNewPartitionTableClicked ); + connect( + m_ui->resizeVolumeGroupButton, &QAbstractButton::clicked, this, &PartitionPage::onResizeVolumeGroupClicked ); + connect( m_ui->deactivateVolumeGroupButton, + &QAbstractButton::clicked, + this, + &PartitionPage::onDeactivateVolumeGroupClicked ); + connect( + m_ui->removeVolumeGroupButton, &QAbstractButton::clicked, this, &PartitionPage::onRemoveVolumeGroupClicked ); + connect( + m_ui->newPartitionTableButton, &QAbstractButton::clicked, this, &PartitionPage::onNewPartitionTableClicked ); connect( m_ui->createButton, &QAbstractButton::clicked, this, &PartitionPage::onCreateClicked ); connect( m_ui->editButton, &QAbstractButton::clicked, this, &PartitionPage::onEditClicked ); connect( m_ui->deleteButton, &QAbstractButton::clicked, this, &PartitionPage::onDeleteClicked ); - if ( m_isEfi ) { + if ( m_isEfi ) + { m_ui->bootLoaderComboBox->hide(); m_ui->label_3->hide(); } @@ -117,14 +130,13 @@ PartitionPage::PartitionPage( PartitionCoreModule* core, QWidget* parent ) CALAMARES_RETRANSLATE( m_ui->retranslateUi( this ); ) } -PartitionPage::~PartitionPage() -{ -} +PartitionPage::~PartitionPage() {} void PartitionPage::updateButtons() { - bool create = false, createTable = false, edit = false, del = false, currentDeviceIsVG = false, isDeactivable = false; + bool create = false, createTable = false, edit = false, del = false, currentDeviceIsVG = false, + isDeactivable = false; bool isRemovable = false, isVGdeactivated = false; QModelIndex index = m_ui->partitionTreeView->currentIndex(); @@ -157,16 +169,20 @@ PartitionPage::updateButtons() Device* device = nullptr; QModelIndex deviceIndex = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 ); if ( deviceIndex.isValid() ) + { device = m_core->deviceModel()->deviceForIndex( deviceIndex ); + } if ( !device ) + { cWarning() << "Device for updateButtons is nullptr"; + } else if ( device->type() != Device::Type::LVM_Device ) { createTable = true; #ifdef WITH_KPMCORE4API - if ( device->type() == Device::Type::SoftwareRAID_Device && - static_cast< SoftwareRAID* >(device)->status() == SoftwareRAID::Status::Inactive ) + if ( device->type() == Device::Type::SoftwareRAID_Device + && static_cast< SoftwareRAID* >( device )->status() == SoftwareRAID::Status::Inactive ) { createTable = false; create = false; @@ -177,7 +193,7 @@ PartitionPage::updateButtons() { currentDeviceIsVG = true; - LvmDevice* lvmDevice = dynamic_cast(m_core->deviceModel()->deviceForIndex( deviceIndex )); + LvmDevice* lvmDevice = dynamic_cast< LvmDevice* >( m_core->deviceModel()->deviceForIndex( deviceIndex ) ); isDeactivable = DeactivateVolumeGroupOperation::isDeactivatable( lvmDevice ); isRemovable = RemoveVolumeGroupOperation::isRemovable( lvmDevice ); @@ -185,7 +201,9 @@ PartitionPage::updateButtons() isVGdeactivated = m_core->isVGdeactivated( lvmDevice ); if ( isVGdeactivated ) + { m_ui->revertButton->setEnabled( true ); + } } } @@ -205,14 +223,18 @@ PartitionPage::onNewPartitionTableClicked() Q_ASSERT( index.isValid() ); Device* device = m_core->deviceModel()->deviceForIndex( index ); - QPointer dlg = new QDialog( this ); + QPointer< QDialog > dlg = new QDialog( this ); Ui_CreatePartitionTableDialog ui; ui.setupUi( dlg.data() ); QString areYouSure = tr( "Are you sure you want to create a new partition table on %1?" ).arg( device->name() ); if ( PartUtils::isEfiSystem() ) + { ui.gptRadioButton->setChecked( true ); + } else + { ui.mbrRadioButton->setChecked( true ); + } ui.areYouSureLabel->setText( areYouSure ); if ( dlg->exec() == QDialog::Accepted ) @@ -231,22 +253,27 @@ PartitionPage::checkCanCreate( Device* device ) { auto table = device->partitionTable(); - if ( table->type() == PartitionTable::msdos ||table->type() == PartitionTable::msdos_sectorbased ) + if ( table->type() == PartitionTable::msdos || table->type() == PartitionTable::msdos_sectorbased ) { cDebug() << "Checking MSDOS partition" << table->numPrimaries() << "primaries, max" << table->maxPrimaries(); if ( ( table->numPrimaries() >= table->maxPrimaries() ) && !table->hasExtended() ) { - QMessageBox::warning( this, tr( "Can not create new partition" ), + QMessageBox::warning( + this, + tr( "Can not create new partition" ), tr( "The partition table on %1 already has %2 primary partitions, and no more can be added. " - "Please remove one primary partition and add an extended partition, instead." ).arg( device->name() ).arg( table->numPrimaries() ) - ); + "Please remove one primary partition and add an extended partition, instead." ) + .arg( device->name() ) + .arg( table->numPrimaries() ) ); return false; } return true; } else + { return true; // GPT is fine + } } void @@ -260,13 +287,12 @@ PartitionPage::onNewVolumeGroupClicked() for ( const Partition* p : m_core->lvmPVs() ) if ( !m_core->isInVG( p ) ) + { availablePVs << p; + } - QPointer< CreateVolumeGroupDialog > dlg = new CreateVolumeGroupDialog( vgName, - selectedPVs, - availablePVs, - peSize, - this ); + QPointer< CreateVolumeGroupDialog > dlg + = new CreateVolumeGroupDialog( vgName, selectedPVs, availablePVs, peSize, this ); if ( dlg->exec() == QDialog::Accepted ) { @@ -282,7 +308,9 @@ PartitionPage::onNewVolumeGroupClicked() // Disable delete button if current partition was selected to be in VG // TODO: Should Calamares edit LVM PVs which are in VGs? if ( selectedPVs.contains( partition ) ) + { m_ui->deleteButton->setEnabled( false ); + } } QModelIndex deviceIndex = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 ); @@ -297,7 +325,7 @@ PartitionPage::onNewVolumeGroupClicked() // is needed to set the current index in deviceComboBox as the previous one int previousIndex = m_ui->deviceComboBox->findData( previousIndexDeviceData, Qt::ToolTipRole ); - m_ui->deviceComboBox->setCurrentIndex( ( previousIndex < 0 ) ? 0 : previousIndex ); + m_ui->deviceComboBox->setCurrentIndex( ( previousIndex < 0 ) ? 0 : previousIndex ); updateFromCurrentDevice(); } @@ -317,15 +345,16 @@ PartitionPage::onResizeVolumeGroupClicked() for ( const Partition* p : m_core->lvmPVs() ) if ( !m_core->isInVG( p ) ) + { availablePVs << p; + } - QPointer< ResizeVolumeGroupDialog > dlg = new ResizeVolumeGroupDialog( device, - availablePVs, - selectedPVs, - this ); + QPointer< ResizeVolumeGroupDialog > dlg = new ResizeVolumeGroupDialog( device, availablePVs, selectedPVs, this ); if ( dlg->exec() == QDialog::Accepted ) + { m_core->resizeVolumeGroup( device, selectedPVs ); + } delete dlg; } @@ -368,14 +397,11 @@ PartitionPage::onCreateClicked() Q_ASSERT( partition ); if ( !checkCanCreate( model->device() ) ) + { return; + } - CreatePartitionDialog dlg( - model->device(), - partition->parent(), - nullptr, - getCurrentUsedMountpoints(), - this ); + CreatePartitionDialog dlg( model->device(), partition->parent(), nullptr, getCurrentUsedMountpoints(), this ); dlg.initFromFreeSpace( partition ); if ( dlg.exec() == QDialog::Accepted ) { @@ -395,10 +421,13 @@ PartitionPage::onEditClicked() Q_ASSERT( partition ); if ( CalamaresUtils::Partition::isPartitionNew( partition ) ) + { updatePartitionToCreate( model->device(), partition ); + } else + { editExistingPartition( model->device(), partition ); - + } } void @@ -419,18 +448,18 @@ void PartitionPage::onRevertClicked() { ScanningDialog::run( - QtConcurrent::run( [ this ] - { + QtConcurrent::run( [this] { QMutexLocker locker( &m_revertMutex ); int oldIndex = m_ui->deviceComboBox->currentIndex(); m_core->revertAllDevices(); - m_ui->deviceComboBox->setCurrentIndex( ( oldIndex < 0 ) ? 0 : oldIndex ); + m_ui->deviceComboBox->setCurrentIndex( ( oldIndex < 0 ) ? 0 : oldIndex ); updateFromCurrentDevice(); } ), - [ this ]{ + [this] { m_lastSelectedBootLoaderIndex = -1; - if( m_ui->bootLoaderComboBox->currentIndex() < 0 ) { + if ( m_ui->bootLoaderComboBox->currentIndex() < 0 ) + { m_ui->bootLoaderComboBox->setCurrentIndex( 0 ); } }, @@ -442,7 +471,9 @@ PartitionPage::onPartitionViewActivated() { QModelIndex index = m_ui->partitionTreeView->currentIndex(); if ( !index.isValid() ) + { return; + } const PartitionModel* model = static_cast< const PartitionModel* >( index.model() ); Q_ASSERT( model ); @@ -455,9 +486,13 @@ PartitionPage::onPartitionViewActivated() // action from multiple UI elements in this page, so it does not feel worth // the price. if ( CalamaresUtils::Partition::isPartitionFreeSpace( partition ) ) + { m_ui->createButton->click(); + } else + { m_ui->editButton->click(); + } } void @@ -466,11 +501,8 @@ PartitionPage::updatePartitionToCreate( Device* device, Partition* partition ) QStringList mountPoints = getCurrentUsedMountpoints(); mountPoints.removeOne( PartitionInfo::mountPoint( partition ) ); - QPointer< CreatePartitionDialog > dlg = new CreatePartitionDialog( device, - partition->parent(), - partition, - mountPoints, - this ); + QPointer< CreatePartitionDialog > dlg + = new CreatePartitionDialog( device, partition->parent(), partition, mountPoints, this ); dlg->initFromPartitionToCreate( partition ); if ( dlg->exec() == QDialog::Accepted ) { @@ -487,9 +519,12 @@ PartitionPage::editExistingPartition( Device* device, Partition* partition ) QStringList mountPoints = getCurrentUsedMountpoints(); mountPoints.removeOne( PartitionInfo::mountPoint( partition ) ); - QPointer dlg = new EditExistingPartitionDialog( device, partition, mountPoints, this ); + QPointer< EditExistingPartitionDialog > dlg + = new EditExistingPartitionDialog( device, partition, mountPoints, this ); if ( dlg->exec() == QDialog::Accepted ) + { dlg->applyChanges( m_core ); + } delete dlg; } @@ -497,11 +532,15 @@ void PartitionPage::updateBootLoaderInstallPath() { if ( m_isEfi || !m_ui->bootLoaderComboBox->isVisible() ) + { return; + } QVariant var = m_ui->bootLoaderComboBox->currentData( BootLoaderModel::BootLoaderPathRole ); if ( !var.isValid() ) + { return; + } cDebug() << "PartitionPage::updateBootLoaderInstallPath" << var.toString(); m_core->setBootLoaderInstallPath( var.toString() ); } @@ -516,7 +555,7 @@ PartitionPage::updateSelectedBootLoaderIndex() void PartitionPage::restoreSelectedBootLoader() { - Calamares::restoreSelectedBootLoader( *(m_ui->bootLoaderComboBox), m_core->bootLoaderInstallPath() ); + Calamares::restoreSelectedBootLoader( *( m_ui->bootLoaderComboBox ), m_core->bootLoaderInstallPath() ); } @@ -525,13 +564,17 @@ PartitionPage::updateFromCurrentDevice() { QModelIndex index = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 ); if ( !index.isValid() ) + { return; + } Device* device = m_core->deviceModel()->deviceForIndex( index ); QAbstractItemModel* oldModel = m_ui->partitionTreeView->model(); if ( oldModel ) + { disconnect( oldModel, nullptr, this, nullptr ); + } PartitionModel* model = m_core->partitionModelForDevice( device ); m_ui->partitionBarsView->setModel( model ); @@ -540,10 +583,8 @@ PartitionPage::updateFromCurrentDevice() m_ui->partitionTreeView->expandAll(); // Make all views use the same selection model. - if ( m_ui->partitionBarsView->selectionModel() != - m_ui->partitionTreeView->selectionModel() || - m_ui->partitionBarsView->selectionModel() != - m_ui->partitionLabelsView->selectionModel() ) + if ( m_ui->partitionBarsView->selectionModel() != m_ui->partitionTreeView->selectionModel() + || m_ui->partitionBarsView->selectionModel() != m_ui->partitionLabelsView->selectionModel() ) { // Tree view QItemSelectionModel* selectionModel = m_ui->partitionTreeView->selectionModel(); @@ -559,14 +600,17 @@ PartitionPage::updateFromCurrentDevice() // This is necessary because even with the same selection model it might happen that // a !=0 column is selected in the tree view, which for some reason doesn't trigger a // timely repaint in the bars view. - connect( m_ui->partitionBarsView->selectionModel(), &QItemSelectionModel::currentChanged, - this, [=] - { - QModelIndex selectedIndex = m_ui->partitionBarsView->selectionModel()->currentIndex(); - selectedIndex = selectedIndex.sibling( selectedIndex.row(), 0 ); - m_ui->partitionBarsView->setCurrentIndex( selectedIndex ); - m_ui->partitionLabelsView->setCurrentIndex( selectedIndex ); - }, Qt::UniqueConnection ); + connect( + m_ui->partitionBarsView->selectionModel(), + &QItemSelectionModel::currentChanged, + this, + [=] { + QModelIndex selectedIndex = m_ui->partitionBarsView->selectionModel()->currentIndex(); + selectedIndex = selectedIndex.sibling( selectedIndex.row(), 0 ); + m_ui->partitionBarsView->setCurrentIndex( selectedIndex ); + m_ui->partitionLabelsView->setCurrentIndex( selectedIndex ); + }, + Qt::UniqueConnection ); // Must be done here because we need to have a model set to define // individual column resize mode @@ -577,11 +621,9 @@ PartitionPage::updateFromCurrentDevice() updateButtons(); // Establish connection here because selection model is destroyed when // model changes - connect( m_ui->partitionTreeView->selectionModel(), &QItemSelectionModel::currentChanged, - [ this ]( const QModelIndex&, const QModelIndex& ) - { - updateButtons(); - } ); + connect( m_ui->partitionTreeView->selectionModel(), + &QItemSelectionModel::currentChanged, + [this]( const QModelIndex&, const QModelIndex& ) { updateButtons(); } ); connect( model, &QAbstractItemModel::modelReset, this, &PartitionPage::onPartitionModelReset ); } @@ -597,7 +639,8 @@ void PartitionPage::updateBootLoaderIndex() { // set bootloader back to user selected index - if ( m_lastSelectedBootLoaderIndex >= 0 && m_ui->bootLoaderComboBox->count() ) { + if ( m_lastSelectedBootLoaderIndex >= 0 && m_ui->bootLoaderComboBox->count() ) + { m_ui->bootLoaderComboBox->setCurrentIndex( m_lastSelectedBootLoaderIndex ); } } @@ -605,10 +648,11 @@ PartitionPage::updateBootLoaderIndex() QStringList PartitionPage::getCurrentUsedMountpoints() { - QModelIndex index = m_core->deviceModel()->index( - m_ui->deviceComboBox->currentIndex(), 0 ); + QModelIndex index = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 ); if ( !index.isValid() ) + { return QStringList(); + } Device* device = m_core->deviceModel()->deviceForIndex( index ); QStringList mountPoints; @@ -617,7 +661,9 @@ PartitionPage::getCurrentUsedMountpoints() { const QString& mountPoint = PartitionInfo::mountPoint( partition ); if ( !mountPoint.isEmpty() ) + { mountPoints << mountPoint; + } } return mountPoints; @@ -630,7 +676,7 @@ PartitionPage::selectedDeviceIndex() } void -PartitionPage::selectDeviceByIndex ( int index ) +PartitionPage::selectDeviceByIndex( int index ) { - m_ui->deviceComboBox->setCurrentIndex( index ); + m_ui->deviceComboBox->setCurrentIndex( index ); } diff --git a/src/modules/partition/gui/PartitionPage.h b/src/modules/partition/gui/PartitionPage.h index e8a96a4cf..d23879e15 100644 --- a/src/modules/partition/gui/PartitionPage.h +++ b/src/modules/partition/gui/PartitionPage.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2018-2019, Adriaan de Groot - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,9 +22,9 @@ #ifndef PARTITIONPAGE_H #define PARTITIONPAGE_H -#include -#include #include +#include +#include class PartitionCoreModule; class Ui_PartitionPage; @@ -90,8 +91,8 @@ private: QStringList getCurrentUsedMountpoints(); QMutex m_revertMutex; - int m_lastSelectedBootLoaderIndex; - bool m_isEfi; + int m_lastSelectedBootLoaderIndex; + bool m_isEfi; }; -#endif // PARTITIONPAGE_H +#endif // PARTITIONPAGE_H diff --git a/src/modules/partition/gui/PartitionSizeController.cpp b/src/modules/partition/gui/PartitionSizeController.cpp index 39879dab9..aefc13992 100644 --- a/src/modules/partition/gui/PartitionSizeController.cpp +++ b/src/modules/partition/gui/PartitionSizeController.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,7 +37,8 @@ PartitionSizeController::PartitionSizeController( QObject* parent ) : QObject( parent ) -{} +{ +} void PartitionSizeController::init( Device* device, Partition* partition, const QColor& color ) @@ -58,7 +60,9 @@ PartitionSizeController::setPartResizerWidget( PartResizerWidget* widget, bool f Q_ASSERT( m_device ); if ( m_partResizerWidget ) + { disconnect( m_partResizerWidget, nullptr, this, nullptr ); + } m_dirty = false; m_currentSpinBoxValue = -1; @@ -108,7 +112,9 @@ void PartitionSizeController::setSpinBox( QSpinBox* spinBox ) { if ( m_spinBox ) + { disconnect( m_spinBox, nullptr, this, nullptr ); + } m_spinBox = spinBox; m_spinBox->setMaximum( std::numeric_limits< int >::max() ); connectWidgets(); @@ -118,7 +124,9 @@ void PartitionSizeController::connectWidgets() { if ( !m_spinBox || !m_partResizerWidget ) + { return; + } connect( m_spinBox, SIGNAL( editingFinished() ), SLOT( updatePartResizerWidget() ) ); connect( m_partResizerWidget, SIGNAL( firstSectorChanged( qint64 ) ), SLOT( updateSpinBox() ) ); @@ -132,9 +140,13 @@ void PartitionSizeController::updatePartResizerWidget() { if ( m_updating ) + { return; + } if ( m_spinBox->value() == m_currentSpinBoxValue ) + { return; + } m_updating = true; qint64 sectorSize = qint64( m_spinBox->value() ) * 1024 * 1024 / m_device->logicalSize(); @@ -148,8 +160,7 @@ PartitionSizeController::updatePartResizerWidget() } void -PartitionSizeController::doAlignAndUpdatePartResizerWidget( qint64 firstSector, - qint64 lastSector ) +PartitionSizeController::doAlignAndUpdatePartResizerWidget( qint64 firstSector, qint64 lastSector ) { if ( lastSector > m_partResizerWidget->maximumLastSector() ) { @@ -176,7 +187,9 @@ void PartitionSizeController::updateSpinBox() { if ( m_updating ) + { return; + } m_updating = true; doUpdateSpinBox(); m_updating = false; @@ -186,12 +199,16 @@ void PartitionSizeController::doUpdateSpinBox() { if ( !m_spinBox ) + { return; + } int mbSize = CalamaresUtils::BytesToMiB( m_partition->length() * m_device->logicalSize() ); m_spinBox->setValue( mbSize ); - if ( m_currentSpinBoxValue != -1 && //if it's not the first time we're setting it - m_currentSpinBoxValue != mbSize ) //and the operation changes the SB value + if ( m_currentSpinBoxValue != -1 && //if it's not the first time we're setting it + m_currentSpinBoxValue != mbSize ) //and the operation changes the SB value + { m_dirty = true; + } m_currentSpinBoxValue = mbSize; } diff --git a/src/modules/partition/gui/PartitionSizeController.h b/src/modules/partition/gui/PartitionSizeController.h index 7337968f5..1353404c5 100644 --- a/src/modules/partition/gui/PartitionSizeController.h +++ b/src/modules/partition/gui/PartitionSizeController.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/PartitionSplitterWidget.cpp b/src/modules/partition/gui/PartitionSplitterWidget.cpp index b8a8017ab..08543756c 100644 --- a/src/modules/partition/gui/PartitionSplitterWidget.cpp +++ b/src/modules/partition/gui/PartitionSplitterWidget.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/PartitionSplitterWidget.h b/src/modules/partition/gui/PartitionSplitterWidget.h index ed4f0d112..36bd96559 100644 --- a/src/modules/partition/gui/PartitionSplitterWidget.h +++ b/src/modules/partition/gui/PartitionSplitterWidget.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -57,10 +58,7 @@ public: void init( Device* dev, bool drawNestedPartitions ); - void setSplitPartition( const QString& path, - qint64 minSize, - qint64 maxSize, - qint64 preferredSize ); + void setSplitPartition( const QString& path, qint64 minSize, qint64 maxSize, qint64 preferredSize ); qint64 splitPartitionSize() const; qint64 newPartitionSize() const; @@ -80,20 +78,15 @@ protected: private: void setupItems( const QVector< PartitionSplitterItem >& items ); - void drawPartitions( QPainter* painter, - const QRect& rect, - const QVector< PartitionSplitterItem >& itemList ); - void drawSection( QPainter* painter, const QRect& rect_, int x, int width, - const PartitionSplitterItem& item ); - void drawResizeHandle( QPainter* painter, - const QRect& rect_, - int x ); + void drawPartitions( QPainter* painter, const QRect& rect, const QVector< PartitionSplitterItem >& itemList ); + void drawSection( QPainter* painter, const QRect& rect_, int x, int width, const PartitionSplitterItem& item ); + void drawResizeHandle( QPainter* painter, const QRect& rect_, int x ); PartitionSplitterItem _findItem( QVector< PartitionSplitterItem >& items, - std::function< bool ( PartitionSplitterItem& ) > condition ) const; + std::function< bool( PartitionSplitterItem& ) > condition ) const; int _eachItem( QVector< PartitionSplitterItem >& items, - std::function< bool ( PartitionSplitterItem& ) > operation ) const; + std::function< bool( PartitionSplitterItem& ) > operation ) const; QPair< QVector< PartitionSplitterItem >, qreal > computeItemsVector( const QVector< PartitionSplitterItem >& originalItems ) const; @@ -114,4 +107,4 @@ private: bool m_drawNestedPartitions; }; -#endif // PARTITIONSPLITTERWIDGET_H +#endif // PARTITIONSPLITTERWIDGET_H diff --git a/src/modules/partition/gui/PartitionViewSelectionFilter.h b/src/modules/partition/gui/PartitionViewSelectionFilter.h index 75572a5bb..078999f31 100644 --- a/src/modules/partition/gui/PartitionViewSelectionFilter.h +++ b/src/modules/partition/gui/PartitionViewSelectionFilter.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,4 +26,4 @@ typedef std::function< bool( const QModelIndex& ) > SelectionFilter; -#endif // PARTITIONVIEWSELECTIONFILTER_H +#endif // PARTITIONVIEWSELECTIONFILTER_H diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index c05ed3177..59f117b26 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -1,10 +1,11 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2018-2019, 2020, Adriaan de Groot - * Copyright 2019, Collabora Ltd - * Copyright 2020, Anke Boersma + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018-2019 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-FileCopyrightText: 2020 Anke Boersma shortVersionedName() ); break; case ChoicePage::InstallChoice::Erase: - modeText - = tr( "Erase disk and install %1." ).arg( branding->shortVersionedName() ); + modeText = tr( "Erase disk and install %1." ).arg( branding->shortVersionedName() ); break; case ChoicePage::InstallChoice::Replace: - modeText - = tr( "Replace a partition with %1." ).arg( branding->shortVersionedName() ); + modeText = tr( "Replace a partition with %1." ).arg( branding->shortVersionedName() ); break; case ChoicePage::InstallChoice::NoChoice: case ChoicePage::InstallChoice::Manual: @@ -259,7 +258,8 @@ PartitionViewStep::createSummaryWidget() const previewLabels->setModel( info.partitionModelAfter ); preview->setSelectionMode( QAbstractItemView::NoSelection ); previewLabels->setSelectionMode( QAbstractItemView::NoSelection ); - previewLabels->setCustomNewRootLabel( Calamares::Branding::instance()->string( Calamares::Branding::BootloaderEntryName )); + previewLabels->setCustomNewRootLabel( + Calamares::Branding::instance()->string( Calamares::Branding::BootloaderEntryName ) ); info.partitionModelAfter->setParent( widget ); field = new QVBoxLayout; CalamaresUtils::unmarginLayout( field ); @@ -350,7 +350,7 @@ PartitionViewStep::isNextEnabled() const } void -PartitionViewStep::nextPossiblyChanged(bool) +PartitionViewStep::nextPossiblyChanged( bool ) { emit nextStatusChanged( isNextEnabled() ); } @@ -378,7 +378,8 @@ PartitionViewStep::isAtEnd() const { if ( m_widget->currentWidget() == m_choicePage ) { - if ( m_choicePage->currentChoice() == ChoicePage::InstallChoice::Erase || m_choicePage->currentChoice() == ChoicePage::InstallChoice::Replace + if ( m_choicePage->currentChoice() == ChoicePage::InstallChoice::Erase + || m_choicePage->currentChoice() == ChoicePage::InstallChoice::Replace || m_choicePage->currentChoice() == ChoicePage::InstallChoice::Alongside ) { return true; @@ -395,7 +396,8 @@ PartitionViewStep::onActivate() m_config->updateGlobalStorage(); // if we're coming back to PVS from the next VS - if ( m_widget->currentWidget() == m_choicePage && m_choicePage->currentChoice() == ChoicePage::InstallChoice::Alongside ) + if ( m_widget->currentWidget() == m_choicePage + && m_choicePage->currentChoice() == ChoicePage::InstallChoice::Alongside ) { m_choicePage->applyActionChoice( ChoicePage::InstallChoice::Alongside ); // m_choicePage->reset(); @@ -475,17 +477,17 @@ PartitionViewStep::onLeave() QString message = tr( "Option to use GPT on BIOS" ); QString description = tr( "A GPT partition table is the best option for all " - "systems. This installer supports such a setup for " - "BIOS systems too." - "

    " - "To configure a GPT partition table on BIOS, " - "(if not done so already) go back " - "and set the partition table to GPT, next create a 8 MB " - "unformatted partition with the " - "bios_grub flag enabled.

    " - "An unformatted 8 MB partition is necessary " - "to start %1 on a BIOS system with GPT." ) - .arg( branding->shortProductName() ); + "systems. This installer supports such a setup for " + "BIOS systems too." + "

    " + "To configure a GPT partition table on BIOS, " + "(if not done so already) go back " + "and set the partition table to GPT, next create a 8 MB " + "unformatted partition with the " + "bios_grub flag enabled.

    " + "An unformatted 8 MB partition is necessary " + "to start %1 on a BIOS system with GPT." ) + .arg( branding->shortProductName() ); QMessageBox::information( m_manualPartitionPage, message, description ); } diff --git a/src/modules/partition/gui/PartitionViewStep.h b/src/modules/partition/gui/PartitionViewStep.h index 1b0baf142..da1ec5255 100644 --- a/src/modules/partition/gui/PartitionViewStep.h +++ b/src/modules/partition/gui/PartitionViewStep.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,7 +37,8 @@ class PartitionCoreModule; class QStackedWidget; class WaitingWidget; -template class QFutureWatcher; +template < typename T > +class QFutureWatcher; /** * The starting point of the module. Instantiates PartitionCoreModule, @@ -83,14 +85,14 @@ private: Config* m_config; PartitionCoreModule* m_core; - QStackedWidget* m_widget; - ChoicePage* m_choicePage; - PartitionPage* m_manualPartitionPage; + QStackedWidget* m_widget; + ChoicePage* m_choicePage; + PartitionPage* m_manualPartitionPage; WaitingWidget* m_waitingWidget; - QFutureWatcher* m_future; + QFutureWatcher< void >* m_future; }; CALAMARES_PLUGIN_FACTORY_DECLARATION( PartitionViewStepFactory ) -#endif // PARTITIONVIEWSTEP_H +#endif // PARTITIONVIEWSTEP_H diff --git a/src/modules/partition/gui/ReplaceWidget.cpp b/src/modules/partition/gui/ReplaceWidget.cpp index 8594a3e15..6c4d800dd 100644 --- a/src/modules/partition/gui/ReplaceWidget.cpp +++ b/src/modules/partition/gui/ReplaceWidget.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2014, Aurélien Gâteau - * Copyright 2019-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,8 +23,8 @@ #include "ui_ReplaceWidget.h" #include "core/DeviceModel.h" -#include "core/PartitionCoreModule.h" #include "core/PartitionActions.h" +#include "core/PartitionCoreModule.h" #include "core/PartitionInfo.h" #include "Branding.h" @@ -41,9 +42,7 @@ using CalamaresUtils::Partition::untranslatedFS; using CalamaresUtils::Partition::userVisibleFS; -ReplaceWidget::ReplaceWidget( PartitionCoreModule* core, - QComboBox* devicesComboBox, - QWidget* parent ) +ReplaceWidget::ReplaceWidget( PartitionCoreModule* core, QComboBox* devicesComboBox, QWidget* parent ) : QWidget( parent ) , m_ui( new Ui_ReplaceWidget ) , m_core( core ) @@ -57,20 +56,15 @@ ReplaceWidget::ReplaceWidget( PartitionCoreModule* core, m_ui->bootStatusLabel->clear(); updateFromCurrentDevice( devicesComboBox ); - connect( devicesComboBox, &QComboBox::currentTextChanged, - this, [=]( const QString& /* text */ ) - { + connect( devicesComboBox, &QComboBox::currentTextChanged, this, [=]( const QString& /* text */ ) { updateFromCurrentDevice( devicesComboBox ); } ); - CALAMARES_RETRANSLATE( - onPartitionSelected(); - ) + CALAMARES_RETRANSLATE( onPartitionSelected(); ) } -ReplaceWidget::~ReplaceWidget() -{} +ReplaceWidget::~ReplaceWidget() {} bool @@ -101,23 +95,20 @@ ReplaceWidget::applyChanges() Device* dev = model->device(); PartitionActions::doReplacePartition( - m_core, dev, partition, - { gs->value( "defaultFileSystemType" ).toString(), QString() } ); + m_core, dev, partition, { gs->value( "defaultFileSystemType" ).toString(), QString() } ); if ( m_isEfi ) { QList< Partition* > efiSystemPartitions = m_core->efiSystemPartitions(); if ( efiSystemPartitions.count() == 1 ) { - PartitionInfo::setMountPoint( - efiSystemPartitions.first(), - gs->value( "efiSystemPartition" ).toString() ); + PartitionInfo::setMountPoint( efiSystemPartitions.first(), + gs->value( "efiSystemPartition" ).toString() ); } else if ( efiSystemPartitions.count() > 1 ) { - PartitionInfo::setMountPoint( - efiSystemPartitions.at( m_ui->bootComboBox->currentIndex() ), - gs->value( "efiSystemPartition" ).toString() ); + PartitionInfo::setMountPoint( efiSystemPartitions.at( m_ui->bootComboBox->currentIndex() ), + gs->value( "efiSystemPartition" ).toString() ); } } @@ -131,7 +122,9 @@ void ReplaceWidget::onPartitionSelected() { if ( Calamares::JobQueue::instance()->globalStorage()->value( "firmwareType" ) == "efi" ) + { m_isEfi = true; + } const auto* branding = Calamares::Branding::instance(); if ( m_ui->partitionTreeView->currentIndex() == QModelIndex() ) @@ -146,24 +139,20 @@ ReplaceWidget::onPartitionSelected() } bool ok = false; - double requiredSpaceB = Calamares::JobQueue::instance() - ->globalStorage() - ->value( "requiredStorageGiB" ) - .toDouble( &ok ) * 1024 * 1024 * 1024; + double requiredSpaceB + = Calamares::JobQueue::instance()->globalStorage()->value( "requiredStorageGiB" ).toDouble( &ok ) * 1024 * 1024 + * 1024; PartitionModel* model = qobject_cast< PartitionModel* >( m_ui->partitionTreeView->model() ); if ( model && ok ) { - const QStringList osproberLines = Calamares::JobQueue::instance() - ->globalStorage() - ->value( "osproberLines" ).toStringList(); + const QStringList osproberLines + = Calamares::JobQueue::instance()->globalStorage()->value( "osproberLines" ).toStringList(); Partition* partition = model->partitionForIndex( m_ui->partitionTreeView->currentIndex() ); - if ( !partition || - partition->state() != KPM_PARTITION_STATE(None) ) + if ( !partition || partition->state() != KPM_PARTITION_STATE( None ) ) { - updateStatus( CalamaresUtils::Fail, - tr( "The selected item does not appear to be a valid partition." ) ); + updateStatus( CalamaresUtils::Fail, tr( "The selected item does not appear to be a valid partition." ) ); setNextEnabled( false ); return; } @@ -173,7 +162,7 @@ ReplaceWidget::onPartitionSelected() updateStatus( CalamaresUtils::Fail, tr( "%1 cannot be installed on empty space. Please select an " "existing partition." ) - .arg( branding->versionedName() ) ); + .arg( branding->versionedName() ) ); setNextEnabled( false ); return; } @@ -183,7 +172,7 @@ ReplaceWidget::onPartitionSelected() updateStatus( CalamaresUtils::Fail, tr( "%1 cannot be installed on an extended partition. Please select an " "existing primary or logical partition." ) - .arg( branding->versionedName() ) ); + .arg( branding->versionedName() ) ); setNextEnabled( false ); return; } @@ -191,8 +180,7 @@ ReplaceWidget::onPartitionSelected() if ( partition->partitionPath().isEmpty() ) { updateStatus( CalamaresUtils::Fail, - tr( "%1 cannot be installed on this partition." ) - .arg( branding->versionedName() ) ); + tr( "%1 cannot be installed on this partition." ).arg( branding->versionedName() ) ); setNextEnabled( false ); return; } @@ -208,20 +196,23 @@ ReplaceWidget::onPartitionSelected() { QString osName; if ( !lineColumns.value( 1 ).simplified().isEmpty() ) + { osName = lineColumns.value( 1 ).simplified(); + } else if ( !lineColumns.value( 2 ).simplified().isEmpty() ) + { osName = lineColumns.value( 2 ).simplified(); + } if ( osName.isEmpty() ) { - prettyName = tr( "Unknown system partition (%1)" ) - .arg( fsNameForUser ); + prettyName = tr( "Unknown system partition (%1)" ).arg( fsNameForUser ); } else { - prettyName = tr ( "%1 system partition (%2)" ) - .arg( osName.replace( 0, 1, osName.at( 0 ).toUpper() ) ) - .arg( fsNameForUser ); + prettyName = tr( "%1 system partition (%2)" ) + .arg( osName.replace( 0, 1, osName.at( 0 ).toUpper() ) ) + .arg( fsNameForUser ); } break; } @@ -233,11 +224,10 @@ ReplaceWidget::onPartitionSelected() tr( "%4

    " "The partition %1 is too small for %2. Please select a partition " "with capacity at least %3 GiB." ) - .arg( partition->partitionPath() ) - .arg( branding->versionedName() ) - .arg( requiredSpaceB / ( 1024. * 1024. * 1024. ), - 0, 'f', 1 ) - .arg( prettyName ) ); + .arg( partition->partitionPath() ) + .arg( branding->versionedName() ) + .arg( requiredSpaceB / ( 1024. * 1024. * 1024. ), 0, 'f', 1 ) + .arg( prettyName ) ); setNextEnabled( false ); return; } @@ -257,8 +247,8 @@ ReplaceWidget::onPartitionSelected() "An EFI system partition cannot be found anywhere " "on this system. Please go back and use manual " "partitioning to set up %1." ) - .arg( branding->shortProductName() ) - .arg( prettyName ) ); + .arg( branding->shortProductName() ) + .arg( prettyName ) ); setNextEnabled( false ); } else if ( efiSystemPartitions.count() == 1 ) @@ -267,15 +257,14 @@ ReplaceWidget::onPartitionSelected() tr( "%3

    " "%1 will be installed on %2.
    " "Warning: all data on partition " - "%2 will be lost.") - .arg( branding->versionedName() ) - .arg( partition->partitionPath() ) - .arg( prettyName ) ); + "%2 will be lost." ) + .arg( branding->versionedName() ) + .arg( partition->partitionPath() ) + .arg( prettyName ) ); m_ui->bootStatusLabel->show(); - m_ui->bootStatusLabel->setText( - tr( "The EFI system partition at %1 will be used for starting %2." ) - .arg( efiSystemPartitions.first()->partitionPath() ) - .arg( branding->shortProductName() ) ); + m_ui->bootStatusLabel->setText( tr( "The EFI system partition at %1 will be used for starting %2." ) + .arg( efiSystemPartitions.first()->partitionPath() ) + .arg( branding->shortProductName() ) ); setNextEnabled( true ); } else @@ -284,10 +273,10 @@ ReplaceWidget::onPartitionSelected() tr( "%3

    " "%1 will be installed on %2.
    " "Warning: all data on partition " - "%2 will be lost.") - .arg( branding->versionedName() ) - .arg( partition->partitionPath() ) - .arg( prettyName ) ); + "%2 will be lost." ) + .arg( branding->versionedName() ) + .arg( partition->partitionPath() ) + .arg( prettyName ) ); m_ui->bootStatusLabel->show(); m_ui->bootStatusLabel->setText( tr( "EFI system partition:" ) ); m_ui->bootComboBox->show(); @@ -295,9 +284,10 @@ ReplaceWidget::onPartitionSelected() { Partition* efiPartition = efiSystemPartitions.at( i ); m_ui->bootComboBox->addItem( efiPartition->partitionPath(), i ); - if ( efiPartition->devicePath() == partition->devicePath() && - efiPartition->number() == 1 ) + if ( efiPartition->devicePath() == partition->devicePath() && efiPartition->number() == 1 ) + { m_ui->bootComboBox->setCurrentIndex( i ); + } } setNextEnabled( true ); } @@ -308,10 +298,10 @@ ReplaceWidget::onPartitionSelected() tr( "%3

    " "%1 will be installed on %2.
    " "Warning: all data on partition " - "%2 will be lost.") - .arg( branding->versionedName() ) - .arg( partition->partitionPath() ) - .arg( prettyName ) ); + "%2 will be lost." ) + .arg( branding->versionedName() ) + .arg( partition->partitionPath() ) + .arg( prettyName ) ); setNextEnabled( true ); } } @@ -322,7 +312,9 @@ void ReplaceWidget::setNextEnabled( bool enabled ) { if ( enabled == m_nextEnabled ) + { return; + } m_nextEnabled = enabled; emit nextStatusChanged( enabled ); @@ -333,27 +325,29 @@ void ReplaceWidget::updateStatus( CalamaresUtils::ImageType imageType, const QString& text ) { int iconSize = CalamaresUtils::defaultFontHeight() * 6; - m_ui->selectedIconLabel->setPixmap( CalamaresUtils::defaultPixmap( imageType, - CalamaresUtils::Original, - QSize( iconSize, iconSize ) ) ); + m_ui->selectedIconLabel->setPixmap( + CalamaresUtils::defaultPixmap( imageType, CalamaresUtils::Original, QSize( iconSize, iconSize ) ) ); m_ui->selectedIconLabel->setFixedHeight( iconSize ); m_ui->selectedStatusLabel->setText( text ); } - void ReplaceWidget::updateFromCurrentDevice( QComboBox* devicesComboBox ) { QModelIndex index = m_core->deviceModel()->index( devicesComboBox->currentIndex(), 0 ); if ( !index.isValid() ) + { return; + } Device* device = m_core->deviceModel()->deviceForIndex( index ); QAbstractItemModel* oldModel = m_ui->partitionTreeView->model(); if ( oldModel ) + { disconnect( oldModel, nullptr, this, nullptr ); + } PartitionModel* model = m_core->partitionModelForDevice( device ); m_ui->partitionTreeView->setModel( model ); @@ -368,8 +362,10 @@ ReplaceWidget::updateFromCurrentDevice( QComboBox* devicesComboBox ) //updateButtons(); // Establish connection here because selection model is destroyed when // model changes - connect( m_ui->partitionTreeView->selectionModel(), &QItemSelectionModel::currentRowChanged, - this, &ReplaceWidget::onPartitionViewActivated ); + connect( m_ui->partitionTreeView->selectionModel(), + &QItemSelectionModel::currentRowChanged, + this, + &ReplaceWidget::onPartitionViewActivated ); connect( model, &QAbstractItemModel::modelReset, this, &ReplaceWidget::onPartitionModelReset ); } @@ -380,7 +376,9 @@ ReplaceWidget::onPartitionViewActivated() { QModelIndex index = m_ui->partitionTreeView->currentIndex(); if ( !index.isValid() ) + { return; + } const PartitionModel* model = static_cast< const PartitionModel* >( index.model() ); Q_ASSERT( model ); diff --git a/src/modules/partition/gui/ReplaceWidget.h b/src/modules/partition/gui/ReplaceWidget.h index c09c604b1..e30b57bb3 100644 --- a/src/modules/partition/gui/ReplaceWidget.h +++ b/src/modules/partition/gui/ReplaceWidget.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2014, Aurélien Gâteau - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,8 +24,8 @@ #include "utils/CalamaresUtilsGui.h" -#include #include +#include class Ui_ReplaceWidget; class QComboBox; @@ -35,9 +36,7 @@ class ReplaceWidget : public QWidget { Q_OBJECT public: - explicit ReplaceWidget( PartitionCoreModule* core, - QComboBox* devicesComboBox, - QWidget* parent = nullptr ); + explicit ReplaceWidget( PartitionCoreModule* core, QComboBox* devicesComboBox, QWidget* parent = nullptr ); virtual ~ReplaceWidget(); bool isNextEnabled() const; @@ -69,4 +68,4 @@ private: void onPartitionModelReset(); }; -#endif // REPLACEWIDGET_H +#endif // REPLACEWIDGET_H diff --git a/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp b/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp index 2de999360..1aae5f49b 100644 --- a/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp +++ b/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,7 +30,7 @@ #include #include -ResizeVolumeGroupDialog::ResizeVolumeGroupDialog( LvmDevice *device, +ResizeVolumeGroupDialog::ResizeVolumeGroupDialog( LvmDevice* device, const PartitionVector& availablePVs, PartitionVector& selectedPVs, QWidget* parent ) @@ -39,12 +40,17 @@ ResizeVolumeGroupDialog::ResizeVolumeGroupDialog( LvmDevice *device, setWindowTitle( tr( "Resize Volume Group" ) ); for ( int i = 0; i < pvList()->count(); i++ ) - pvList()->item(i)->setCheckState( Qt::Checked ); + { + pvList()->item( i )->setCheckState( Qt::Checked ); + } for ( const Partition* p : availablePVs ) + { pvList()->addItem( new ListPhysicalVolumeWidgetItem( p, false ) ); + } - peSize()->setValue( static_cast( device->peSize() / Capacity::unitFactor(Capacity::Unit::Byte, Capacity::Unit::MiB) ) ); + peSize()->setValue( + static_cast< int >( device->peSize() / Capacity::unitFactor( Capacity::Unit::Byte, Capacity::Unit::MiB ) ) ); vgName()->setEnabled( false ); peSize()->setEnabled( false ); diff --git a/src/modules/partition/gui/ResizeVolumeGroupDialog.h b/src/modules/partition/gui/ResizeVolumeGroupDialog.h index bc088de4d..af5a29ae6 100644 --- a/src/modules/partition/gui/ResizeVolumeGroupDialog.h +++ b/src/modules/partition/gui/ResizeVolumeGroupDialog.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,7 +31,7 @@ class ResizeVolumeGroupDialog : public VolumeGroupBaseDialog public: using PartitionVector = QVector< const Partition* >; - ResizeVolumeGroupDialog( LvmDevice *device, + ResizeVolumeGroupDialog( LvmDevice* device, const PartitionVector& availablePVs, PartitionVector& selectedPVs, QWidget* parent ); @@ -41,4 +42,4 @@ private: PartitionVector& m_selectedPVs; }; -#endif // RESIZEVOLUMEGROUPDIALOG_H +#endif // RESIZEVOLUMEGROUPDIALOG_H diff --git a/src/modules/partition/gui/ScanningDialog.cpp b/src/modules/partition/gui/ScanningDialog.cpp index 85479fbb3..5099484d9 100644 --- a/src/modules/partition/gui/ScanningDialog.cpp +++ b/src/modules/partition/gui/ScanningDialog.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,14 +23,12 @@ #include "3rdparty/waitingspinnerwidget.h" #include -#include #include +#include #include -ScanningDialog::ScanningDialog( const QString& text, - const QString& windowTitle, - QWidget* parent ) +ScanningDialog::ScanningDialog( const QString& text, const QString& windowTitle, QWidget* parent ) : QDialog( parent ) { setModal( true ); @@ -42,8 +41,7 @@ ScanningDialog::ScanningDialog( const QString& text, dialogLayout->addWidget( spinner ); spinner->start(); - QLabel* rescanningLabel = new QLabel( text, - this ); + QLabel* rescanningLabel = new QLabel( text, this ); dialogLayout->addWidget( rescanningLabel ); } @@ -55,16 +53,11 @@ ScanningDialog::run( const QFuture< void >& future, const std::function< void() >& callback, QWidget* parent ) { - ScanningDialog* theDialog = - new ScanningDialog( text, - windowTitle, - parent ); + ScanningDialog* theDialog = new ScanningDialog( text, windowTitle, parent ); theDialog->show(); QFutureWatcher< void >* watcher = new QFutureWatcher< void >(); - connect( watcher, &QFutureWatcher< void >::finished, - theDialog, [ watcher, theDialog, callback ] - { + connect( watcher, &QFutureWatcher< void >::finished, theDialog, [watcher, theDialog, callback] { watcher->deleteLater(); theDialog->hide(); theDialog->deleteLater(); @@ -76,18 +69,13 @@ ScanningDialog::run( const QFuture< void >& future, void -ScanningDialog::run( const QFuture< void >& future, - const std::function< void() >& callback, - QWidget* parent ) +ScanningDialog::run( const QFuture< void >& future, const std::function< void() >& callback, QWidget* parent ) { - ScanningDialog::run( future, - tr( "Scanning storage devices..." ), - tr( "Partitioning" ), - callback, - parent ); + ScanningDialog::run( future, tr( "Scanning storage devices..." ), tr( "Partitioning" ), callback, parent ); } -void ScanningDialog::setVisible(bool visible) +void +ScanningDialog::setVisible( bool visible ) { QDialog::setVisible( visible ); emit visibilityChanged(); diff --git a/src/modules/partition/gui/ScanningDialog.h b/src/modules/partition/gui/ScanningDialog.h index 4f5254590..25cd36227 100644 --- a/src/modules/partition/gui/ScanningDialog.h +++ b/src/modules/partition/gui/ScanningDialog.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,19 +29,19 @@ class ScanningDialog : public QDialog { Q_OBJECT public: - explicit ScanningDialog( const QString& text, - const QString& windowTitle, - QWidget* parent = nullptr ); + explicit ScanningDialog( const QString& text, const QString& windowTitle, QWidget* parent = nullptr ); - static void run( const QFuture< void >& future, - const QString& text, - const QString& windowTitle, - const std::function< void() >& callback = []{}, - QWidget* parent = nullptr ); + static void run( + const QFuture< void >& future, + const QString& text, + const QString& windowTitle, + const std::function< void() >& callback = [] {}, + QWidget* parent = nullptr ); - static void run( const QFuture< void >& future, - const std::function< void() >& callback = []{}, - QWidget* parent = nullptr ); + static void run( + const QFuture< void >& future, + const std::function< void() >& callback = [] {}, + QWidget* parent = nullptr ); public slots: void setVisible( bool visible ) override; @@ -49,4 +50,4 @@ signals: void visibilityChanged(); }; -#endif // SCANNINGDIALOG_H +#endif // SCANNINGDIALOG_H diff --git a/src/modules/partition/gui/VolumeGroupBaseDialog.cpp b/src/modules/partition/gui/VolumeGroupBaseDialog.cpp index 8078253b3..95aa75ac2 100644 --- a/src/modules/partition/gui/VolumeGroupBaseDialog.cpp +++ b/src/modules/partition/gui/VolumeGroupBaseDialog.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,46 +31,42 @@ #include #include -VolumeGroupBaseDialog::VolumeGroupBaseDialog( QString& vgName, - QVector< const Partition* > pvList, - QWidget *parent ) - : QDialog(parent) - , ui(new Ui::VolumeGroupBaseDialog) - , m_vgNameValue(vgName) - , m_totalSizeValue(0) - , m_usedSizeValue(0) +VolumeGroupBaseDialog::VolumeGroupBaseDialog( QString& vgName, QVector< const Partition* > pvList, QWidget* parent ) + : QDialog( parent ) + , ui( new Ui::VolumeGroupBaseDialog ) + , m_vgNameValue( vgName ) + , m_totalSizeValue( 0 ) + , m_usedSizeValue( 0 ) { - ui->setupUi(this); + ui->setupUi( this ); for ( const Partition* p : pvList ) + { ui->pvList->addItem( new ListPhysicalVolumeWidgetItem( p, false ) ); + } - ui->vgType->addItems( QStringList() << "LVM" << "RAID" ); - ui->vgType->setCurrentIndex(0); + ui->vgType->addItems( QStringList() << "LVM" + << "RAID" ); + ui->vgType->setCurrentIndex( 0 ); - QRegularExpression re(R"(^(?!_|\.)[\w\-.+]+)"); + QRegularExpression re( R"(^(?!_|\.)[\w\-.+]+)" ); ui->vgName->setValidator( new QRegularExpressionValidator( re, this ) ); ui->vgName->setText( m_vgNameValue ); updateOkButton(); updateTotalSize(); - connect( ui->pvList, &QListWidget::itemChanged, this, - [&](QListWidgetItem*) { - updateTotalSize(); - updateOkButton(); - } ); + connect( ui->pvList, &QListWidget::itemChanged, this, [&]( QListWidgetItem* ) { + updateTotalSize(); + updateOkButton(); + } ); - connect( ui->peSize, qOverload(&QSpinBox::valueChanged), this, - [&](int) { - updateTotalSectors(); - updateOkButton(); - }); + connect( ui->peSize, qOverload< int >( &QSpinBox::valueChanged ), this, [&]( int ) { + updateTotalSectors(); + updateOkButton(); + } ); - connect( ui->vgName, &QLineEdit::textChanged, this, - [&](const QString&) { - updateOkButton(); - }); + connect( ui->vgName, &QLineEdit::textChanged, this, [&]( const QString& ) { updateOkButton(); } ); } VolumeGroupBaseDialog::~VolumeGroupBaseDialog() @@ -82,11 +79,14 @@ VolumeGroupBaseDialog::checkedItems() const { QVector< const Partition* > items; - for ( int i = 0; i < ui->pvList->count(); i++) { - ListPhysicalVolumeWidgetItem* item = dynamic_cast< ListPhysicalVolumeWidgetItem* >( ui->pvList->item(i) ); + for ( int i = 0; i < ui->pvList->count(); i++ ) + { + ListPhysicalVolumeWidgetItem* item = dynamic_cast< ListPhysicalVolumeWidgetItem* >( ui->pvList->item( i ) ); if ( item && item->checkState() == Qt::Checked ) + { items << item->partition(); + } } return items; @@ -101,10 +101,8 @@ VolumeGroupBaseDialog::isSizeValid() const void VolumeGroupBaseDialog::updateOkButton() { - okButton()->setEnabled(isSizeValid() && - !checkedItems().empty() && - !ui->vgName->text().isEmpty() && - ui->peSize->value() > 0); + okButton()->setEnabled( isSizeValid() && !checkedItems().empty() && !ui->vgName->text().isEmpty() + && ui->peSize->value() > 0 ); } void @@ -112,7 +110,7 @@ VolumeGroupBaseDialog::setUsedSizeValue( qint64 usedSize ) { m_usedSizeValue = usedSize; - ui->usedSize->setText( Capacity::formatByteSize(m_usedSizeValue) ); + ui->usedSize->setText( Capacity::formatByteSize( m_usedSizeValue ) ); } void @@ -126,10 +124,14 @@ VolumeGroupBaseDialog::updateTotalSize() { m_totalSizeValue = 0; - for ( const Partition *p : checkedItems()) - m_totalSizeValue += p->capacity() - p->capacity() % (ui->peSize->value() * Capacity::unitFactor(Capacity::Unit::Byte, Capacity::Unit::MiB)); + for ( const Partition* p : checkedItems() ) + { + m_totalSizeValue += p->capacity() + - p->capacity() + % ( ui->peSize->value() * Capacity::unitFactor( Capacity::Unit::Byte, Capacity::Unit::MiB ) ); + } - ui->totalSize->setText(Capacity::formatByteSize(m_totalSizeValue)); + ui->totalSize->setText( Capacity::formatByteSize( m_totalSizeValue ) ); updateTotalSectors(); } @@ -139,10 +141,12 @@ VolumeGroupBaseDialog::updateTotalSectors() { qint64 totalSectors = 0; - qint64 extentSize = ui->peSize->value() * Capacity::unitFactor(Capacity::Unit::Byte, Capacity::Unit::MiB); + qint64 extentSize = ui->peSize->value() * Capacity::unitFactor( Capacity::Unit::Byte, Capacity::Unit::MiB ); if ( extentSize > 0 ) + { totalSectors = m_totalSizeValue / extentSize; + } ui->totalSectors->setText( QString::number( totalSectors ) ); } diff --git a/src/modules/partition/gui/VolumeGroupBaseDialog.h b/src/modules/partition/gui/VolumeGroupBaseDialog.h index e6011ce62..7c7b43e48 100644 --- a/src/modules/partition/gui/VolumeGroupBaseDialog.h +++ b/src/modules/partition/gui/VolumeGroupBaseDialog.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +24,8 @@ #include -namespace Ui { +namespace Ui +{ class VolumeGroupBaseDialog; } @@ -37,9 +39,7 @@ class VolumeGroupBaseDialog : public QDialog Q_OBJECT public: - explicit VolumeGroupBaseDialog( QString& vgName, - QVector< const Partition* > pvList, - QWidget* parent = nullptr ); + explicit VolumeGroupBaseDialog( QString& vgName, QVector< const Partition* > pvList, QWidget* parent = nullptr ); ~VolumeGroupBaseDialog(); protected: @@ -78,4 +78,4 @@ private: qint64 m_usedSizeValue; }; -#endif // VOLUMEGROUPBASEDIALOG_H +#endif // VOLUMEGROUPBASEDIALOG_H diff --git a/src/modules/partition/jobs/ClearMountsJob.cpp b/src/modules/partition/jobs/ClearMountsJob.cpp index 29f00ebd2..c51a784c1 100644 --- a/src/modules/partition/jobs/ClearMountsJob.cpp +++ b/src/modules/partition/jobs/ClearMountsJob.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot - * Copyright 2019, Kevin Kofler + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Kevin Kofler + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/ClearMountsJob.h b/src/modules/partition/jobs/ClearMountsJob.h index 2accc652d..7d9df270a 100644 --- a/src/modules/partition/jobs/ClearMountsJob.h +++ b/src/modules/partition/jobs/ClearMountsJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/ClearTempMountsJob.cpp b/src/modules/partition/jobs/ClearTempMountsJob.cpp index cf2c71f0c..36b83f56c 100644 --- a/src/modules/partition/jobs/ClearTempMountsJob.cpp +++ b/src/modules/partition/jobs/ClearTempMountsJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/ClearTempMountsJob.h b/src/modules/partition/jobs/ClearTempMountsJob.h index 433cfd8ad..6f29f197c 100644 --- a/src/modules/partition/jobs/ClearTempMountsJob.h +++ b/src/modules/partition/jobs/ClearTempMountsJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/CreatePartitionJob.cpp b/src/modules/partition/jobs/CreatePartitionJob.cpp index fd322a94e..ac61518f8 100644 --- a/src/modules/partition/jobs/CreatePartitionJob.cpp +++ b/src/modules/partition/jobs/CreatePartitionJob.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac - * Copyright 2017, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 2020, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/CreatePartitionJob.h b/src/modules/partition/jobs/CreatePartitionJob.h index f315e24fb..b11874fad 100644 --- a/src/modules/partition/jobs/CreatePartitionJob.h +++ b/src/modules/partition/jobs/CreatePartitionJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/CreatePartitionTableJob.cpp b/src/modules/partition/jobs/CreatePartitionTableJob.cpp index 79675c324..a585c094a 100644 --- a/src/modules/partition/jobs/CreatePartitionTableJob.cpp +++ b/src/modules/partition/jobs/CreatePartitionTableJob.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/CreatePartitionTableJob.h b/src/modules/partition/jobs/CreatePartitionTableJob.h index e0ed6f918..02f23d169 100644 --- a/src/modules/partition/jobs/CreatePartitionTableJob.h +++ b/src/modules/partition/jobs/CreatePartitionTableJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/CreateVolumeGroupJob.cpp b/src/modules/partition/jobs/CreateVolumeGroupJob.cpp index 28a08f5ad..6d9c9d6e0 100644 --- a/src/modules/partition/jobs/CreateVolumeGroupJob.cpp +++ b/src/modules/partition/jobs/CreateVolumeGroupJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/CreateVolumeGroupJob.h b/src/modules/partition/jobs/CreateVolumeGroupJob.h index 9ed5e24e2..0e73c52fa 100644 --- a/src/modules/partition/jobs/CreateVolumeGroupJob.h +++ b/src/modules/partition/jobs/CreateVolumeGroupJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp b/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp index 77df64e3d..3adce640c 100644 --- a/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp +++ b/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/DeactivateVolumeGroupJob.h b/src/modules/partition/jobs/DeactivateVolumeGroupJob.h index 7b1c9c473..13b60069e 100644 --- a/src/modules/partition/jobs/DeactivateVolumeGroupJob.h +++ b/src/modules/partition/jobs/DeactivateVolumeGroupJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/DeletePartitionJob.cpp b/src/modules/partition/jobs/DeletePartitionJob.cpp index 9b2d4f37d..8a9fedce2 100644 --- a/src/modules/partition/jobs/DeletePartitionJob.cpp +++ b/src/modules/partition/jobs/DeletePartitionJob.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/DeletePartitionJob.h b/src/modules/partition/jobs/DeletePartitionJob.h index f68a4ea8f..5a0332bf4 100644 --- a/src/modules/partition/jobs/DeletePartitionJob.h +++ b/src/modules/partition/jobs/DeletePartitionJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/FillGlobalStorageJob.cpp b/src/modules/partition/jobs/FillGlobalStorageJob.cpp index e3f696bbc..a0b229d45 100644 --- a/src/modules/partition/jobs/FillGlobalStorageJob.cpp +++ b/src/modules/partition/jobs/FillGlobalStorageJob.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2017, 2019-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 2019-2020, Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/FillGlobalStorageJob.h b/src/modules/partition/jobs/FillGlobalStorageJob.h index e3850da37..823f64f2f 100644 --- a/src/modules/partition/jobs/FillGlobalStorageJob.h +++ b/src/modules/partition/jobs/FillGlobalStorageJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/FormatPartitionJob.cpp b/src/modules/partition/jobs/FormatPartitionJob.cpp index 45e851baf..d12c89022 100644 --- a/src/modules/partition/jobs/FormatPartitionJob.cpp +++ b/src/modules/partition/jobs/FormatPartitionJob.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015-2016, Teo Mrnjavac - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/FormatPartitionJob.h b/src/modules/partition/jobs/FormatPartitionJob.h index 2031efc78..f3a721187 100644 --- a/src/modules/partition/jobs/FormatPartitionJob.h +++ b/src/modules/partition/jobs/FormatPartitionJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/PartitionJob.cpp b/src/modules/partition/jobs/PartitionJob.cpp index 6b8dc9034..de96ef950 100644 --- a/src/modules/partition/jobs/PartitionJob.cpp +++ b/src/modules/partition/jobs/PartitionJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/PartitionJob.h b/src/modules/partition/jobs/PartitionJob.h index eef6aaa4c..66b9704a1 100644 --- a/src/modules/partition/jobs/PartitionJob.h +++ b/src/modules/partition/jobs/PartitionJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp b/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp index ed8353e72..7c4b2ea31 100644 --- a/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp +++ b/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/RemoveVolumeGroupJob.h b/src/modules/partition/jobs/RemoveVolumeGroupJob.h index 0a52a837e..06ed2ab2a 100644 --- a/src/modules/partition/jobs/RemoveVolumeGroupJob.h +++ b/src/modules/partition/jobs/RemoveVolumeGroupJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/ResizePartitionJob.cpp b/src/modules/partition/jobs/ResizePartitionJob.cpp index 9ebd4ce7e..c71078dc1 100644 --- a/src/modules/partition/jobs/ResizePartitionJob.cpp +++ b/src/modules/partition/jobs/ResizePartitionJob.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac - * Copyright 2017, Andrius Štikonas + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Andrius Štikonas + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/ResizePartitionJob.h b/src/modules/partition/jobs/ResizePartitionJob.h index f8413f214..f86b792fc 100644 --- a/src/modules/partition/jobs/ResizePartitionJob.h +++ b/src/modules/partition/jobs/ResizePartitionJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp b/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp index b44fd017b..b9828ccb4 100644 --- a/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp +++ b/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/ResizeVolumeGroupJob.h b/src/modules/partition/jobs/ResizeVolumeGroupJob.h index 808c39d32..e77098184 100644 --- a/src/modules/partition/jobs/ResizeVolumeGroupJob.h +++ b/src/modules/partition/jobs/ResizeVolumeGroupJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Caio Jordão Carvalho + * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/SetPartitionFlagsJob.cpp b/src/modules/partition/jobs/SetPartitionFlagsJob.cpp index 3c9403b50..cf8aabd35 100644 --- a/src/modules/partition/jobs/SetPartitionFlagsJob.cpp +++ b/src/modules/partition/jobs/SetPartitionFlagsJob.cpp @@ -1,10 +1,11 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2008 2010, Volker Lanz + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * - * Based on the SetPartFlagsJob class from KDE Partition Manager, - * Copyright 2008, 2010, Volker Lanz + * Based on the SetPartFlagsJob class from KDE Partition Manager * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/SetPartitionFlagsJob.h b/src/modules/partition/jobs/SetPartitionFlagsJob.h index 41b01ecde..957c6893f 100644 --- a/src/modules/partition/jobs/SetPartitionFlagsJob.h +++ b/src/modules/partition/jobs/SetPartitionFlagsJob.h @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Based on the SetPartFlagsJob class from KDE Partition Manager, - * Copyright 2008, 2010, Volker Lanz + * SPDX-FileCopyrightText: 2008 2010, Volker Lanz * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/tests/ClearMountsJobTests.cpp b/src/modules/partition/tests/ClearMountsJobTests.cpp index bdccc1bc4..69d34c848 100644 --- a/src/modules/partition/tests/ClearMountsJobTests.cpp +++ b/src/modules/partition/tests/ClearMountsJobTests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/tests/ClearMountsJobTests.h b/src/modules/partition/tests/ClearMountsJobTests.h index 0cc2b5c78..27dfca8b9 100644 --- a/src/modules/partition/tests/ClearMountsJobTests.h +++ b/src/modules/partition/tests/ClearMountsJobTests.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/tests/PartitionJobTests.cpp b/src/modules/partition/tests/PartitionJobTests.cpp index ae40215db..9aa58ff58 100644 --- a/src/modules/partition/tests/PartitionJobTests.cpp +++ b/src/modules/partition/tests/PartitionJobTests.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau - * Copyright 2017, 2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-FileCopyrightText: 2017, 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/tests/PartitionJobTests.h b/src/modules/partition/tests/PartitionJobTests.h index 4ce064ec7..d2f0eb16c 100644 --- a/src/modules/partition/tests/PartitionJobTests.h +++ b/src/modules/partition/tests/PartitionJobTests.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Aurélien Gâteau + * SPDX-FileCopyrightText: 2014 Aurélien Gâteau + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/plasmalnf/PlasmaLnfJob.cpp b/src/modules/plasmalnf/PlasmaLnfJob.cpp index 44bdb5cc7..b4ffadcd8 100644 --- a/src/modules/plasmalnf/PlasmaLnfJob.cpp +++ b/src/modules/plasmalnf/PlasmaLnfJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,9 +31,7 @@ PlasmaLnfJob::PlasmaLnfJob( const QString& lnfPath, const QString& id ) } -PlasmaLnfJob::~PlasmaLnfJob() -{ -} +PlasmaLnfJob::~PlasmaLnfJob() {} QString @@ -41,7 +40,8 @@ PlasmaLnfJob::prettyName() const return tr( "Plasma Look-and-Feel Job" ); } -QString PlasmaLnfJob::prettyStatusMessage() const +QString +PlasmaLnfJob::prettyStatusMessage() const { return prettyName(); } @@ -55,18 +55,22 @@ PlasmaLnfJob::exec() auto system = CalamaresUtils::System::instance(); Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); - QStringList command( - { - "sudo", "-E", "-H", "-u", gs->value( "username" ).toString(), - m_lnfPath, "-platform", "minimal", "--resetLayout", "--apply", m_id - } ); + QStringList command( { "sudo", + "-E", + "-H", + "-u", + gs->value( "username" ).toString(), + m_lnfPath, + "-platform", + "minimal", + "--resetLayout", + "--apply", + m_id } ); int r = system->targetEnvCall( command ); if ( r ) - return Calamares::JobResult::error( - tr( "Could not select KDE Plasma Look-and-Feel package" ), - tr( "Could not select KDE Plasma Look-and-Feel package" ) ); + return Calamares::JobResult::error( tr( "Could not select KDE Plasma Look-and-Feel package" ), + tr( "Could not select KDE Plasma Look-and-Feel package" ) ); return Calamares::JobResult::ok(); } - diff --git a/src/modules/plasmalnf/PlasmaLnfJob.h b/src/modules/plasmalnf/PlasmaLnfJob.h index 9c52f2c8d..9462f66ac 100644 --- a/src/modules/plasmalnf/PlasmaLnfJob.h +++ b/src/modules/plasmalnf/PlasmaLnfJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -42,4 +43,4 @@ private: QString m_id; }; -#endif // PLASMALNFJOB_H +#endif // PLASMALNFJOB_H diff --git a/src/modules/plasmalnf/PlasmaLnfPage.cpp b/src/modules/plasmalnf/PlasmaLnfPage.cpp index 7e2ef8aa6..f3bcc09c8 100644 --- a/src/modules/plasmalnf/PlasmaLnfPage.cpp +++ b/src/modules/plasmalnf/PlasmaLnfPage.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,9 +22,9 @@ #include "ui_page_plasmalnf.h" +#include "Settings.h" #include "utils/Logger.h" #include "utils/Retranslator.h" -#include "Settings.h" #include @@ -38,17 +39,18 @@ ThemeInfo::ThemeInfo( const KPluginMetaData& data ) { } -static ThemeInfoList plasma_themes() +static ThemeInfoList +plasma_themes() { ThemeInfoList packages; - QList pkgs = KPackage::PackageLoader::self()->listPackages( "Plasma/LookAndFeel" ); + QList< KPluginMetaData > pkgs = KPackage::PackageLoader::self()->listPackages( "Plasma/LookAndFeel" ); for ( const KPluginMetaData& data : pkgs ) { if ( data.isValid() && !data.isHidden() && !data.name().isEmpty() ) { - packages << ThemeInfo{ data }; + packages << ThemeInfo { data }; } } @@ -63,25 +65,21 @@ PlasmaLnfPage::PlasmaLnfPage( QWidget* parent ) , m_buttonGroup( nullptr ) { ui->setupUi( this ); - CALAMARES_RETRANSLATE( - { + CALAMARES_RETRANSLATE( { ui->retranslateUi( this ); if ( Calamares::Settings::instance()->isSetupMode() ) - ui->generalExplanation->setText( tr( - "Please choose a look-and-feel for the KDE Plasma Desktop. " - "You can also skip this step and configure the look-and-feel " - "once the system is set up. Clicking on a look-and-feel " - "selection will give you a live preview of that look-and-feel.") ); + ui->generalExplanation->setText( tr( "Please choose a look-and-feel for the KDE Plasma Desktop. " + "You can also skip this step and configure the look-and-feel " + "once the system is set up. Clicking on a look-and-feel " + "selection will give you a live preview of that look-and-feel." ) ); else - ui->generalExplanation->setText( tr( - "Please choose a look-and-feel for the KDE Plasma Desktop. " - "You can also skip this step and configure the look-and-feel " - "once the system is installed. Clicking on a look-and-feel " - "selection will give you a live preview of that look-and-feel.") ); + ui->generalExplanation->setText( tr( "Please choose a look-and-feel for the KDE Plasma Desktop. " + "You can also skip this step and configure the look-and-feel " + "once the system is installed. Clicking on a look-and-feel " + "selection will give you a live preview of that look-and-feel." ) ); updateThemeNames(); fillUi(); - } - ) + } ) } void @@ -91,7 +89,7 @@ PlasmaLnfPage::setLnfPath( const QString& path ) } void -PlasmaLnfPage::setEnabledThemes(const ThemeInfoList& themes, bool showAll ) +PlasmaLnfPage::setEnabledThemes( const ThemeInfoList& themes, bool showAll ) { m_enabledThemes = themes; @@ -100,7 +98,9 @@ PlasmaLnfPage::setEnabledThemes(const ThemeInfoList& themes, bool showAll ) auto plasmaThemes = plasma_themes(); for ( auto& installed_theme : plasmaThemes ) if ( !m_enabledThemes.findById( installed_theme.id ) ) + { m_enabledThemes.append( installed_theme ); + } } updateThemeNames(); @@ -121,10 +121,13 @@ PlasmaLnfPage::setPreselect( const QString& id ) { m_preselect = id; if ( !m_enabledThemes.isEmpty() ) + { fillUi(); + } } -void PlasmaLnfPage::updateThemeNames() +void +PlasmaLnfPage::updateThemeNames() { auto plasmaThemes = plasma_themes(); for ( auto& enabled_theme : m_enabledThemes ) @@ -138,7 +141,8 @@ void PlasmaLnfPage::updateThemeNames() } } -void PlasmaLnfPage::winnowThemes() +void +PlasmaLnfPage::winnowThemes() { auto plasmaThemes = plasma_themes(); bool winnowed = true; @@ -167,7 +171,8 @@ void PlasmaLnfPage::winnowThemes() } } -void PlasmaLnfPage::fillUi() +void +PlasmaLnfPage::fillUi() { if ( m_enabledThemes.isEmpty() ) { @@ -180,7 +185,7 @@ void PlasmaLnfPage::fillUi() m_buttonGroup->setExclusive( true ); } - int c = 1; // After the general explanation + int c = 1; // After the general explanation for ( auto& theme : m_enabledThemes ) { if ( !theme.widget ) @@ -188,7 +193,7 @@ void PlasmaLnfPage::fillUi() ThemeWidget* w = new ThemeWidget( theme ); m_buttonGroup->addButton( w->button() ); ui->verticalLayout->insertWidget( c, w ); - connect( w, &ThemeWidget::themeSelected, this, &PlasmaLnfPage::plasmaThemeSelected); + connect( w, &ThemeWidget::themeSelected, this, &PlasmaLnfPage::plasmaThemeSelected ); theme.widget = w; } else diff --git a/src/modules/plasmalnf/PlasmaLnfPage.h b/src/modules/plasmalnf/PlasmaLnfPage.h index 5a4c68b4e..286a10418 100644 --- a/src/modules/plasmalnf/PlasmaLnfPage.h +++ b/src/modules/plasmalnf/PlasmaLnfPage.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -75,8 +76,8 @@ private: bool m_showAll; // If true, don't winnow according to enabledThemes ThemeInfoList m_enabledThemes; - QButtonGroup *m_buttonGroup; + QButtonGroup* m_buttonGroup; QList< ThemeWidget* > m_widgets; }; -#endif //PLASMALNFPAGE_H +#endif //PLASMALNFPAGE_H diff --git a/src/modules/plasmalnf/PlasmaLnfViewStep.cpp b/src/modules/plasmalnf/PlasmaLnfViewStep.cpp index ec5258c64..e9d1c3f61 100644 --- a/src/modules/plasmalnf/PlasmaLnfViewStep.cpp +++ b/src/modules/plasmalnf/PlasmaLnfViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -32,7 +33,7 @@ #include #endif -CALAMARES_PLUGIN_FACTORY_DEFINITION( PlasmaLnfViewStepFactory, registerPlugin(); ) +CALAMARES_PLUGIN_FACTORY_DEFINITION( PlasmaLnfViewStepFactory, registerPlugin< PlasmaLnfViewStep >(); ) static QString currentPlasmaTheme() @@ -58,7 +59,9 @@ PlasmaLnfViewStep::PlasmaLnfViewStep( QObject* parent ) PlasmaLnfViewStep::~PlasmaLnfViewStep() { if ( m_widget && m_widget->parent() == nullptr ) + { m_widget->deleteLater(); + } } @@ -104,7 +107,8 @@ PlasmaLnfViewStep::isAtEnd() const } -void PlasmaLnfViewStep::onLeave() +void +PlasmaLnfViewStep::onLeave() { } @@ -118,9 +122,13 @@ PlasmaLnfViewStep::jobs() const if ( !m_themeId.isEmpty() ) { if ( !m_lnfPath.isEmpty() ) + { l.append( Calamares::job_ptr( new PlasmaLnfJob( m_lnfPath, m_themeId ) ) ); + } else + { cWarning() << "no lnftool given for plasmalnf module."; + } } return l; } @@ -133,20 +141,25 @@ PlasmaLnfViewStep::setConfigurationMap( const QVariantMap& configurationMap ) m_widget->setLnfPath( m_lnfPath ); if ( m_lnfPath.isEmpty() ) + { cWarning() << "no lnftool given for plasmalnf module."; + } m_liveUser = CalamaresUtils::getString( configurationMap, "liveuser" ); QString preselect = CalamaresUtils::getString( configurationMap, "preselect" ); if ( preselect == QStringLiteral( "*" ) ) + { preselect = currentPlasmaTheme(); + } if ( !preselect.isEmpty() ) + { m_widget->setPreselect( preselect ); + } bool showAll = CalamaresUtils::getBool( configurationMap, "showAll", false ); - if ( configurationMap.contains( "themes" ) && - configurationMap.value( "themes" ).type() == QVariant::List ) + if ( configurationMap.contains( "themes" ) && configurationMap.value( "themes" ).type() == QVariant::List ) { ThemeInfoList listedThemes; auto themeList = configurationMap.value( "themes" ).toList(); @@ -160,14 +173,20 @@ PlasmaLnfViewStep::setConfigurationMap( const QVariantMap& configurationMap ) listedThemes.append( ThemeInfo( iv.value( "theme" ).toString(), iv.value( "image" ).toString() ) ); } else if ( i.type() == QVariant::String ) + { listedThemes.append( ThemeInfo( i.toString() ) ); + } if ( listedThemes.length() == 1 ) + { cWarning() << "only one theme enabled in plasmalnf"; + } m_widget->setEnabledThemes( listedThemes, showAll ); } else + { m_widget->setEnabledThemesAll(); // All of them + } } void @@ -182,9 +201,9 @@ PlasmaLnfViewStep::themeSelected( const QString& id ) QProcess lnftool; if ( !m_liveUser.isEmpty() ) - lnftool.start( "sudo", {"-E", "-H", "-u", m_liveUser, m_lnfPath, "--resetLayout", "--apply", id} ); + lnftool.start( "sudo", { "-E", "-H", "-u", m_liveUser, m_lnfPath, "--resetLayout", "--apply", id } ); else - lnftool.start( m_lnfPath, {"--resetLayout", "--apply", id} ); + lnftool.start( m_lnfPath, { "--resetLayout", "--apply", id } ); if ( !lnftool.waitForStarted( 1000 ) ) { @@ -198,7 +217,11 @@ PlasmaLnfViewStep::themeSelected( const QString& id ) } if ( ( lnftool.exitCode() == 0 ) && ( lnftool.exitStatus() == QProcess::NormalExit ) ) + { cDebug() << "Plasma look-and-feel applied" << id; + } else + { cWarning() << "could not apply look-and-feel" << id; + } } diff --git a/src/modules/plasmalnf/PlasmaLnfViewStep.h b/src/modules/plasmalnf/PlasmaLnfViewStep.h index 0bf76934c..c2ecf9ddd 100644 --- a/src/modules/plasmalnf/PlasmaLnfViewStep.h +++ b/src/modules/plasmalnf/PlasmaLnfViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,9 +20,9 @@ #ifndef PLASMALNFVIEWSTEP_H #define PLASMALNFVIEWSTEP_H +#include "DllMacro.h" #include "utils/PluginFactory.h" #include "viewpages/ViewStep.h" -#include "DllMacro.h" #include #include @@ -60,9 +61,9 @@ private: PlasmaLnfPage* m_widget; QString m_lnfPath; // Path to the lnf tool QString m_themeId; // Id of selected theme - QString m_liveUser; // Name of the live user (for OEM mode) + QString m_liveUser; // Name of the live user (for OEM mode) }; CALAMARES_PLUGIN_FACTORY_DECLARATION( PlasmaLnfViewStepFactory ) -#endif // PLASMALNFVIEWSTEP_H +#endif // PLASMALNFVIEWSTEP_H diff --git a/src/modules/plasmalnf/ThemeInfo.h b/src/modules/plasmalnf/ThemeInfo.h index 982064073..432738e17 100644 --- a/src/modules/plasmalnf/ThemeInfo.h +++ b/src/modules/plasmalnf/ThemeInfo.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -42,7 +43,8 @@ struct ThemeInfo ThemeInfo() : widget( nullptr ) - {} + { + } explicit ThemeInfo( const QString& _id ) : id( _id ) @@ -54,13 +56,14 @@ struct ThemeInfo : id( _id ) , imagePath( image ) , widget( nullptr ) - {} + { + } // Defined in PlasmaLnfPage.cpp explicit ThemeInfo( const KPluginMetaData& ); bool isValid() const { return !id.isEmpty(); } -} ; +}; class ThemeInfoList : public QList< ThemeInfo > { @@ -71,7 +74,9 @@ public: for ( ThemeInfo& i : *this ) { if ( i.id == id ) + { return &i; + } } return nullptr; } @@ -82,16 +87,15 @@ public: for ( const ThemeInfo& i : *this ) { if ( i.id == id ) + { return &i; + } } return nullptr; } /** @brief Checks if a given @p id is in the list of themes. */ - bool contains( const QString& id ) const - { - return findById( id ) != nullptr; - } -} ; + bool contains( const QString& id ) const { return findById( id ) != nullptr; } +}; #endif diff --git a/src/modules/plasmalnf/ThemeWidget.cpp b/src/modules/plasmalnf/ThemeWidget.cpp index 92a88197f..896b28772 100644 --- a/src/modules/plasmalnf/ThemeWidget.cpp +++ b/src/modules/plasmalnf/ThemeWidget.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,9 +21,9 @@ #include "ThemeInfo.h" +#include "Branding.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" -#include "Branding.h" #include #include @@ -38,33 +39,41 @@ * empty screenshot. Returns blank if the path * doesn't exist anywhere in the search paths. */ -static QString _munge_imagepath( const QString& path ) +static QString +_munge_imagepath( const QString& path ) { if ( path.isEmpty() ) + { return ":/view-preview.png"; + } if ( path.startsWith( '/' ) ) + { return path; + } if ( QFileInfo::exists( path ) ) + { return path; + } QFileInfo fi( QDir( Calamares::Branding::instance()->componentDirectory() ), path ); if ( fi.exists() ) + { return fi.absoluteFilePath(); + } return QString(); } -ThemeWidget::ThemeWidget(const ThemeInfo& info, QWidget* parent) +ThemeWidget::ThemeWidget( const ThemeInfo& info, QWidget* parent ) : QWidget( parent ) , m_id( info.id ) , m_check( new QRadioButton( info.name.isEmpty() ? info.id : info.name, parent ) ) , m_description( new QLabel( info.description, parent ) ) { - const QSize image_size{ - qMax(12 * CalamaresUtils::defaultFontHeight(), 120), - qMax(8 * CalamaresUtils::defaultFontHeight(), 80) }; + const QSize image_size { qMax( 12 * CalamaresUtils::defaultFontHeight(), 120 ), + qMax( 8 * CalamaresUtils::defaultFontHeight(), 80 ) }; QHBoxLayout* layout = new QHBoxLayout( this ); this->setLayout( layout ); @@ -99,7 +108,9 @@ void ThemeWidget::clicked( bool checked ) { if ( checked ) + { emit themeSelected( m_id ); + } } QAbstractButton* @@ -108,7 +119,8 @@ ThemeWidget::button() const return m_check; } -void ThemeWidget::updateThemeName(const ThemeInfo& info) +void +ThemeWidget::updateThemeName( const ThemeInfo& info ) { m_check->setText( info.name ); m_description->setText( info.description ); diff --git a/src/modules/plasmalnf/ThemeWidget.h b/src/modules/plasmalnf/ThemeWidget.h index 83294cc77..e3574dfac 100644 --- a/src/modules/plasmalnf/ThemeWidget.h +++ b/src/modules/plasmalnf/ThemeWidget.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -47,7 +48,6 @@ private: QString m_id; QRadioButton* m_check; QLabel* m_description; -} ; +}; #endif - diff --git a/src/modules/plasmalnf/view-preview.png.license b/src/modules/plasmalnf/view-preview.png.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/src/modules/plasmalnf/view-preview.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/modules/plasmalnf/view-preview.svg.license b/src/modules/plasmalnf/view-preview.svg.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/src/modules/plasmalnf/view-preview.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/modules/removeuser/RemoveUserJob.cpp b/src/modules/removeuser/RemoveUserJob.cpp index 0488d19a4..221f4f5ec 100644 --- a/src/modules/removeuser/RemoveUserJob.cpp +++ b/src/modules/removeuser/RemoveUserJob.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Teo Mrnjavac - * Copyright 2017. Alf Gaida - * Copyright 2019-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Alf Gaida + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/removeuser/RemoveUserJob.h b/src/modules/removeuser/RemoveUserJob.h index d13e834f0..25c5c8e73 100644 --- a/src/modules/removeuser/RemoveUserJob.h +++ b/src/modules/removeuser/RemoveUserJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/shellprocess/ShellProcessJob.cpp b/src/modules/shellprocess/ShellProcessJob.cpp index d0507a732..bbc79934c 100644 --- a/src/modules/shellprocess/ShellProcessJob.cpp +++ b/src/modules/shellprocess/ShellProcessJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/shellprocess/ShellProcessJob.h b/src/modules/shellprocess/ShellProcessJob.h index 708a43087..956f7b0c8 100644 --- a/src/modules/shellprocess/ShellProcessJob.h +++ b/src/modules/shellprocess/ShellProcessJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/shellprocess/Tests.cpp b/src/modules/shellprocess/Tests.cpp index caf9800c9..434520cca 100644 --- a/src/modules/shellprocess/Tests.cpp +++ b/src/modules/shellprocess/Tests.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/shellprocess/Tests.h b/src/modules/shellprocess/Tests.h index 5b4ebebbb..76b05563b 100644 --- a/src/modules/shellprocess/Tests.h +++ b/src/modules/shellprocess/Tests.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/summary/SummaryPage.cpp b/src/modules/summary/SummaryPage.cpp index 2885b1d61..ebcde6a2c 100644 --- a/src/modules/summary/SummaryPage.cpp +++ b/src/modules/summary/SummaryPage.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, 2019, Adriaan de Groot - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -45,21 +46,18 @@ SummaryPage::SummaryPage( const SummaryViewStep* thisViewStep, QWidget* parent ) { Q_UNUSED( parent ) - this->setObjectName("summaryStep"); + this->setObjectName( "summaryStep" ); Q_ASSERT( m_thisViewStep ); QVBoxLayout* layout = new QVBoxLayout( this ); layout->setContentsMargins( 0, 0, 0, 0 ); QLabel* headerLabel = new QLabel( this ); - CALAMARES_RETRANSLATE( - if ( Calamares::Settings::instance()->isSetupMode() ) - headerLabel->setText( tr( "This is an overview of what will happen once you start " - "the setup procedure." ) ); - else - headerLabel->setText( tr( "This is an overview of what will happen once you start " - "the install procedure." ) ); - ) + CALAMARES_RETRANSLATE( if ( Calamares::Settings::instance()->isSetupMode() ) + headerLabel->setText( tr( "This is an overview of what will happen once you start " + "the setup procedure." ) ); + else headerLabel->setText( tr( "This is an overview of what will happen once you start " + "the install procedure." ) ); ) layout->addWidget( headerLabel ); layout->addWidget( m_scrollArea ); m_scrollArea->setWidgetResizable( true ); @@ -81,8 +79,7 @@ SummaryPage::onActivate() createContentWidget(); bool first = true; - const Calamares::ViewStepList steps = - stepsForSummary( Calamares::ViewManager::instance()->viewSteps() ); + const Calamares::ViewStepList steps = stepsForSummary( Calamares::ViewManager::instance()->viewSteps() ); for ( Calamares::ViewStep* step : steps ) { @@ -90,12 +87,18 @@ SummaryPage::onActivate() QWidget* widget = step->createSummaryWidget(); if ( text.isEmpty() && !widget ) + { continue; + } if ( first ) + { first = false; + } else + { m_layout->addSpacing( SECTION_SPACING ); + } m_layout->addWidget( createTitleLabel( step->prettyName() ) ); QHBoxLayout* itemBodyLayout = new QHBoxLayout; @@ -106,9 +109,13 @@ SummaryPage::onActivate() itemBodyLayout->addLayout( itemBodyCoreLayout ); CalamaresUtils::unmarginLayout( itemBodyLayout ); if ( !text.isEmpty() ) + { itemBodyCoreLayout->addWidget( createBodyLabel( text ) ); + } if ( widget ) + { itemBodyCoreLayout->addWidget( widget ); + } itemBodyLayout->addSpacing( CalamaresUtils::defaultFontHeight() * 2 ); } m_layout->addStretch(); @@ -147,7 +154,9 @@ SummaryPage::stepsForSummary( const Calamares::ViewStepList& allSteps ) const // If we reach the parent step of this page, we're done collecting the list of // steps to summarize. if ( m_thisViewStep == step ) + { break; + } steps.append( step ); } diff --git a/src/modules/summary/SummaryPage.h b/src/modules/summary/SummaryPage.h index b9a98f2a1..6d0148760 100644 --- a/src/modules/summary/SummaryPage.h +++ b/src/modules/summary/SummaryPage.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -70,4 +71,4 @@ private: QScrollArea* m_scrollArea; }; -#endif // SUMMARYPAGE_H +#endif // SUMMARYPAGE_H diff --git a/src/modules/summary/SummaryViewStep.cpp b/src/modules/summary/SummaryViewStep.cpp index 6835b2b05..da0e10e1e 100644 --- a/src/modules/summary/SummaryViewStep.cpp +++ b/src/modules/summary/SummaryViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,7 +21,7 @@ #include "SummaryPage.h" -CALAMARES_PLUGIN_FACTORY_DEFINITION( SummaryViewStepFactory, registerPlugin(); ) +CALAMARES_PLUGIN_FACTORY_DEFINITION( SummaryViewStepFactory, registerPlugin< SummaryViewStep >(); ) SummaryViewStep::SummaryViewStep( QObject* parent ) : Calamares::ViewStep( parent ) @@ -33,7 +34,9 @@ SummaryViewStep::SummaryViewStep( QObject* parent ) SummaryViewStep::~SummaryViewStep() { if ( m_widget && m_widget->parent() == nullptr ) + { m_widget->deleteLater(); + } } @@ -98,4 +101,3 @@ SummaryViewStep::onLeave() { m_widget->createContentWidget(); } - diff --git a/src/modules/summary/SummaryViewStep.h b/src/modules/summary/SummaryViewStep.h index 5b2f49b8e..3e23199ca 100644 --- a/src/modules/summary/SummaryViewStep.h +++ b/src/modules/summary/SummaryViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -57,4 +58,4 @@ private: CALAMARES_PLUGIN_FACTORY_DECLARATION( SummaryViewStepFactory ) -#endif // SUMMARYPAGEPLUGIN_H +#endif // SUMMARYPAGEPLUGIN_H diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 9e8179905..c840d541c 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index ad7d1d4f2..787a92dc5 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/Tests.cpp b/src/modules/tracking/Tests.cpp index b7ed57ab1..0fed06947 100644 --- a/src/modules/tracking/Tests.cpp +++ b/src/modules/tracking/Tests.cpp @@ -2,7 +2,6 @@ * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE */ #include "Config.h" diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 2df3a66a0..f4ee504e2 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index 33b8eceb1..d87deb412 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 76b4a6f95..2644b0cd0 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/TrackingPage.h b/src/modules/tracking/TrackingPage.h index 7df43b846..7600019bd 100644 --- a/src/modules/tracking/TrackingPage.h +++ b/src/modules/tracking/TrackingPage.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/TrackingType.h b/src/modules/tracking/TrackingType.h index 22e3157d6..15c9cc792 100644 --- a/src/modules/tracking/TrackingType.h +++ b/src/modules/tracking/TrackingType.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index da5d9108d..ce32bb2e6 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/TrackingViewStep.h b/src/modules/tracking/TrackingViewStep.h index b05f1b053..335fc77d0 100644 --- a/src/modules/tracking/TrackingViewStep.h +++ b/src/modules/tracking/TrackingViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/level-install.svg.license b/src/modules/tracking/level-install.svg.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/src/modules/tracking/level-install.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/modules/tracking/level-machine.svg.license b/src/modules/tracking/level-machine.svg.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/src/modules/tracking/level-machine.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/modules/tracking/level-none.svg.license b/src/modules/tracking/level-none.svg.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/src/modules/tracking/level-none.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/modules/tracking/level-user.svg.license b/src/modules/tracking/level-user.svg.license new file mode 100644 index 000000000..ef0e9d7cd --- /dev/null +++ b/src/modules/tracking/level-user.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Uri Herrera and others +SPDX-License-Identifier: LGPL-3.0-or-later diff --git a/src/modules/users/CheckPWQuality.h b/src/modules/users/CheckPWQuality.h index 1aeb34ba8..80dc809fe 100644 --- a/src/modules/users/CheckPWQuality.h +++ b/src/modules/users/CheckPWQuality.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index de246950f..322884c0e 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -2,7 +2,6 @@ * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 133f59c05..1e2a4c639 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -2,7 +2,6 @@ * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index 9a61c5d9e..0f08b1700 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -3,7 +3,6 @@ * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE */ #include "CreateUserJob.h" diff --git a/src/modules/users/CreateUserJob.h b/src/modules/users/CreateUserJob.h index f2239307e..b5d3e9490 100644 --- a/src/modules/users/CreateUserJob.h +++ b/src/modules/users/CreateUserJob.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/SetHostNameJob.cpp b/src/modules/users/SetHostNameJob.cpp index a4cfa0268..ff69c64a9 100644 --- a/src/modules/users/SetHostNameJob.cpp +++ b/src/modules/users/SetHostNameJob.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Rohan Garg - * Copyright 2015, Teo Mrnjavac - * Copyright 2018, 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Rohan Garg + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/SetHostNameJob.h b/src/modules/users/SetHostNameJob.h index 5d52b545b..4cc29c9ac 100644 --- a/src/modules/users/SetHostNameJob.h +++ b/src/modules/users/SetHostNameJob.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Rohan Garg - * Copyright 2015, Teo Mrnjavac - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Rohan Garg + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/SetPasswordJob.cpp b/src/modules/users/SetPasswordJob.cpp index 3199a0a76..78efd3efc 100644 --- a/src/modules/users/SetPasswordJob.cpp +++ b/src/modules/users/SetPasswordJob.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/SetPasswordJob.h b/src/modules/users/SetPasswordJob.h index cf5b2f585..aa1af0417 100644 --- a/src/modules/users/SetPasswordJob.h +++ b/src/modules/users/SetPasswordJob.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index ad0c448d5..3e04ff7a7 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot - * Copyright 2019, Collabora Ltd - * Copyright 2020, Gabriel Craciunescu + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-FileCopyrightText: 2020 Gabriel Craciunescu + * SPDX-License-Identifier: GPL-3.0-or-later * * Portions from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index 246a08083..9c3998feb 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -1,7 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Portions from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index df77da036..3b2b7152f 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot - * Copyright 2017, Gabriel Craciunescu + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/UsersViewStep.h b/src/modules/users/UsersViewStep.h index baf4e6292..6f6baf58b 100644 --- a/src/modules/users/UsersViewStep.h +++ b/src/modules/users/UsersViewStep.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/images/invalid.png.license b/src/modules/users/images/invalid.png.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/src/modules/users/images/invalid.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/users/images/valid.png.license b/src/modules/users/images/valid.png.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/src/modules/users/images/valid.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/usersq/UsersQmlViewStep.cpp b/src/modules/usersq/UsersQmlViewStep.cpp index 963383c10..1c011e9b6 100644 --- a/src/modules/usersq/UsersQmlViewStep.cpp +++ b/src/modules/usersq/UsersQmlViewStep.cpp @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017-2018, Adriaan de Groot - * Copyright 2017, Gabriel Craciunescu - * Copyright 2020, Camilo Higuita + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu + * SPDX-FileCopyrightText: 2020 Camilo Higuita + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/usersq/UsersQmlViewStep.h b/src/modules/usersq/UsersQmlViewStep.h index 463698199..2a3c1a6c5 100644 --- a/src/modules/usersq/UsersQmlViewStep.h +++ b/src/modules/usersq/UsersQmlViewStep.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot - * Copyright 2020, Camilo Higuita + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Camilo Higuita + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/webview/WebViewConfig.h.in b/src/modules/webview/WebViewConfig.h.in index 6611e44c0..ddc07b31c 100644 --- a/src/modules/webview/WebViewConfig.h.in +++ b/src/modules/webview/WebViewConfig.h.in @@ -1,3 +1,6 @@ +/* SPDX-FileCopyrightText: no + SPDX-License-Identifier: CC0-1.0 +*/ #ifndef CALAMARESWEBVIEWCONFIG_H #define CALAMARESWEBVIEWCONFIG_H diff --git a/src/modules/webview/WebViewStep.cpp b/src/modules/webview/WebViewStep.cpp index e1261433c..671156737 100644 --- a/src/modules/webview/WebViewStep.cpp +++ b/src/modules/webview/WebViewStep.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Rohan Garg - * Copyright 2016, Teo Mrnjavac + * SPDX-FileCopyrightText: 2015 Rohan Garg + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,7 +30,7 @@ #include #endif -CALAMARES_PLUGIN_FACTORY_DEFINITION( WebViewStepFactory, registerPlugin(); ) +CALAMARES_PLUGIN_FACTORY_DEFINITION( WebViewStepFactory, registerPlugin< WebViewStep >(); ) WebViewStep::WebViewStep( QObject* parent ) : Calamares::ViewStep( parent ) @@ -41,13 +42,9 @@ WebViewStep::WebViewStep( QObject* parent ) m_view = new C_QWEBVIEW(); #ifdef WEBVIEW_WITH_WEBKIT m_view->settings()->setFontFamily( QWebSettings::StandardFont, - m_view->settings()-> - fontFamily( QWebSettings::SansSerifFont ) ); - m_view->setRenderHints( QPainter::Antialiasing | - QPainter::TextAntialiasing | - QPainter::HighQualityAntialiasing | - QPainter::SmoothPixmapTransform | - QPainter::NonCosmeticDefaultPen ); + m_view->settings()->fontFamily( QWebSettings::SansSerifFont ) ); + m_view->setRenderHints( QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::HighQualityAntialiasing + | QPainter::SmoothPixmapTransform | QPainter::NonCosmeticDefaultPen ); #endif } @@ -55,7 +52,9 @@ WebViewStep::WebViewStep( QObject* parent ) WebViewStep::~WebViewStep() { if ( m_view && m_view->parent() == nullptr ) + { m_view->deleteLater(); + } } @@ -100,10 +99,11 @@ WebViewStep::isAtEnd() const return true; } -void WebViewStep::onActivate() +void +WebViewStep::onActivate() { - m_view->load(QUrl(m_url)); - m_view->show(); + m_view->load( QUrl( m_url ) ); + m_view->show(); } QList< Calamares::job_ptr > @@ -116,11 +116,14 @@ WebViewStep::jobs() const void WebViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { - if ( configurationMap.contains("url") && - configurationMap.value("url").type() == QVariant::String ) - m_url = configurationMap.value("url").toString(); + if ( configurationMap.contains( "url" ) && configurationMap.value( "url" ).type() == QVariant::String ) + { + m_url = configurationMap.value( "url" ).toString(); + } - if ( configurationMap.contains("prettyName") && - configurationMap.value("prettyName").type() == QVariant::String ) - m_prettyName = configurationMap.value("prettyName").toString(); + if ( configurationMap.contains( "prettyName" ) + && configurationMap.value( "prettyName" ).type() == QVariant::String ) + { + m_prettyName = configurationMap.value( "prettyName" ).toString(); + } } diff --git a/src/modules/webview/WebViewStep.h b/src/modules/webview/WebViewStep.h index a97d465de..9f6658cdc 100644 --- a/src/modules/webview/WebViewStep.h +++ b/src/modules/webview/WebViewStep.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Rohan Garg - * Copyright 2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Rohan Garg + * SPDX-FileCopyrightText: 2016 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,13 +22,10 @@ #ifndef WEBVIEWPLUGIN_H #define WEBVIEWPLUGIN_H -#include "WebViewConfig.h" - +#include "DllMacro.h" #include "utils/PluginFactory.h" #include "viewpages/ViewStep.h" -#include "DllMacro.h" - #include #ifdef WEBVIEW_WITH_WEBKIT @@ -63,11 +61,11 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ) override; private: - C_QWEBVIEW *m_view; + C_QWEBVIEW* m_view; QString m_url; QString m_prettyName; }; CALAMARES_PLUGIN_FACTORY_DECLARATION( WebViewStepFactory ) -#endif // WEBVIEWPLUGIN_H +#endif // WEBVIEWPLUGIN_H diff --git a/src/modules/welcome/Config.cpp b/src/modules/welcome/Config.cpp index 2bf418ff1..d9f4ca19c 100644 --- a/src/modules/welcome/Config.cpp +++ b/src/modules/welcome/Config.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/Config.h b/src/modules/welcome/Config.h index 6d14097c5..b248f81c8 100644 --- a/src/modules/welcome/Config.h +++ b/src/modules/welcome/Config.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/WelcomePage.cpp b/src/modules/welcome/WelcomePage.cpp index 0c4f44c95..0f22631d3 100644 --- a/src/modules/welcome/WelcomePage.cpp +++ b/src/modules/welcome/WelcomePage.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2015, Anke Boersma - * Copyright 2017-2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2015 Anke Boersma + * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/WelcomePage.h b/src/modules/welcome/WelcomePage.h index 17fedc812..07bea6d76 100644 --- a/src/modules/welcome/WelcomePage.h +++ b/src/modules/welcome/WelcomePage.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac - * Copyright 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/WelcomeViewStep.cpp b/src/modules/welcome/WelcomeViewStep.cpp index cad5349a9..7cf5e744a 100644 --- a/src/modules/welcome/WelcomeViewStep.cpp +++ b/src/modules/welcome/WelcomeViewStep.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/WelcomeViewStep.h b/src/modules/welcome/WelcomeViewStep.h index f4874dc16..c28dc335e 100644 --- a/src/modules/welcome/WelcomeViewStep.h +++ b/src/modules/welcome/WelcomeViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/checker/CheckerContainer.cpp b/src/modules/welcome/checker/CheckerContainer.cpp index 11ae9c7c3..58c9396fa 100644 --- a/src/modules/welcome/checker/CheckerContainer.cpp +++ b/src/modules/welcome/checker/CheckerContainer.cpp @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, 2019-2020, Adriaan de Groot - * Copyright 2017, Gabriel Craciunescu + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/checker/CheckerContainer.h b/src/modules/welcome/checker/CheckerContainer.h index 9744ecc77..58358519f 100644 --- a/src/modules/welcome/checker/CheckerContainer.h +++ b/src/modules/welcome/checker/CheckerContainer.h @@ -1,8 +1,9 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot - * Copyright 2017, Gabriel Craciunescu + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/checker/GeneralRequirements.cpp b/src/modules/welcome/checker/GeneralRequirements.cpp index e7994f9a0..32d971b6d 100644 --- a/src/modules/welcome/checker/GeneralRequirements.cpp +++ b/src/modules/welcome/checker/GeneralRequirements.cpp @@ -1,9 +1,10 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017-2018, 2020, Adriaan de Groot - * Copyright 2017, Gabriel Craciunescu - * Copyright 2019, Collabora Ltd + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu + * SPDX-FileCopyrightText: 2019 Collabora Ltd + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/checker/GeneralRequirements.h b/src/modules/welcome/checker/GeneralRequirements.h index ce3abec83..a0a302054 100644 --- a/src/modules/welcome/checker/GeneralRequirements.h +++ b/src/modules/welcome/checker/GeneralRequirements.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/checker/ResultWidget.cpp b/src/modules/welcome/checker/ResultWidget.cpp index 5da120a2a..b86cd23b0 100644 --- a/src/modules/welcome/checker/ResultWidget.cpp +++ b/src/modules/welcome/checker/ResultWidget.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/checker/ResultWidget.h b/src/modules/welcome/checker/ResultWidget.h index f84310bb6..a56ed66e8 100644 --- a/src/modules/welcome/checker/ResultWidget.h +++ b/src/modules/welcome/checker/ResultWidget.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, 2019, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/checker/ResultsListWidget.cpp b/src/modules/welcome/checker/ResultsListWidget.cpp index afde9f08d..7286dd256 100644 --- a/src/modules/welcome/checker/ResultsListWidget.cpp +++ b/src/modules/welcome/checker/ResultsListWidget.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, 2019-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2017 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/checker/ResultsListWidget.h b/src/modules/welcome/checker/ResultsListWidget.h index 3f21955ba..a93cc2371 100644 --- a/src/modules/welcome/checker/ResultsListWidget.h +++ b/src/modules/welcome/checker/ResultsListWidget.h @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2019-2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/checker/partman_devices.c b/src/modules/welcome/checker/partman_devices.c index caee5759c..040c584ba 100644 --- a/src/modules/welcome/checker/partman_devices.c +++ b/src/modules/welcome/checker/partman_devices.c @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Based on parted_devices.c, from partman-base. * diff --git a/src/modules/welcome/checker/partman_devices.h b/src/modules/welcome/checker/partman_devices.h index 9f7695ee9..9c14cda78 100644 --- a/src/modules/welcome/checker/partman_devices.h +++ b/src/modules/welcome/checker/partman_devices.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2014, Teo Mrnjavac + * SPDX-FileCopyrightText: 2014 Teo Mrnjavac + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/language-icon-128px.png.license b/src/modules/welcome/language-icon-128px.png.license new file mode 100644 index 000000000..bc39975ae --- /dev/null +++ b/src/modules/welcome/language-icon-128px.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2011 Farhat Datta and Onur Mustak Cobanli, http://www.languageicon.org/ +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/welcome/language-icon-48px.png.license b/src/modules/welcome/language-icon-48px.png.license new file mode 100644 index 000000000..bc39975ae --- /dev/null +++ b/src/modules/welcome/language-icon-48px.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2011 Farhat Datta and Onur Mustak Cobanli, http://www.languageicon.org/ +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/welcomeq/Recommended.qml b/src/modules/welcomeq/Recommended.qml index 5a6c1316d..cc44c44a9 100644 --- a/src/modules/welcomeq/Recommended.qml +++ b/src/modules/welcomeq/Recommended.qml @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Anke Boersma - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcomeq/Requirements.qml b/src/modules/welcomeq/Requirements.qml index e7835d868..415b828d8 100644 --- a/src/modules/welcomeq/Requirements.qml +++ b/src/modules/welcomeq/Requirements.qml @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Anke Boersma - * Copyright 2020, Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcomeq/WelcomeQmlViewStep.cpp b/src/modules/welcomeq/WelcomeQmlViewStep.cpp index 42944f20d..e76ab3e00 100644 --- a/src/modules/welcomeq/WelcomeQmlViewStep.cpp +++ b/src/modules/welcomeq/WelcomeQmlViewStep.cpp @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2018,2020 Adriaan de Groot + * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcomeq/WelcomeQmlViewStep.h b/src/modules/welcomeq/WelcomeQmlViewStep.h index 78999986c..6dc06eef4 100644 --- a/src/modules/welcomeq/WelcomeQmlViewStep.h +++ b/src/modules/welcomeq/WelcomeQmlViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2019-2020 Adriaan de Groot + * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcomeq/about.qml b/src/modules/welcomeq/about.qml index 7fa6fb462..db8a80135 100644 --- a/src/modules/welcomeq/about.qml +++ b/src/modules/welcomeq/about.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Anke Boersma + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,7 +27,7 @@ Item { width: parent.width height: parent.height focus: true - + property var appName: "Calamares" property var appVersion: "3.2.24" @@ -36,19 +37,19 @@ Item { y: 14 anchors.fill: parent color: "#f2f2f2" - + Column { id: column x: 130 y: 40 - + Rectangle { width: 560 height: 250 radius: 10 border.width: 0 - + Text { width: 400 height: 250 @@ -58,25 +59,25 @@ Item { for %3

    Copyright 2014-2017 Teo Mrnjavac <teo@kde.org>
    Copyright 2017-2020 Adriaan de Groot <groot@kde.org>
    - Thanks to
    the Calamares team - and the Calamares + Thanks to the Calamares team + and the Calamares translators team.

    - Calamares + Calamares development is sponsored by
    - Blue Systems - + Blue Systems - Liberating Software." ) .arg(appName) .arg(appVersion) .arg(Branding.string(Branding.VersionedName)) - + onLinkActivated: Qt.openUrlExternally(link) - + MouseArea { anchors.fill: parent acceptedButtons: Qt.NoButton cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor } - + font.pointSize: 10 anchors.verticalCenterOffset: 10 anchors.horizontalCenterOffset: 40 diff --git a/src/modules/welcomeq/img/chevron-left-solid.svg.license b/src/modules/welcomeq/img/chevron-left-solid.svg.license new file mode 100644 index 000000000..5f43e650d --- /dev/null +++ b/src/modules/welcomeq/img/chevron-left-solid.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2020 demmm +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/welcomeq/img/language-icon-48px.png.license b/src/modules/welcomeq/img/language-icon-48px.png.license new file mode 100644 index 000000000..bc39975ae --- /dev/null +++ b/src/modules/welcomeq/img/language-icon-48px.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2011 Farhat Datta and Onur Mustak Cobanli, http://www.languageicon.org/ +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/welcomeq/img/squid.png.license b/src/modules/welcomeq/img/squid.png.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/src/modules/welcomeq/img/squid.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/welcomeq/release_notes.qml b/src/modules/welcomeq/release_notes.qml index ce9d1d4af..cd2ef257d 100644 --- a/src/modules/welcomeq/release_notes.qml +++ b/src/modules/welcomeq/release_notes.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Anke Boersma + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,9 +34,9 @@ Rectangle { id: flick anchors.fill: parent contentHeight: 3500 - + ScrollBar.vertical: ScrollBar { - id: fscrollbar + id: fscrollbar width: 10 policy: ScrollBar.AlwaysOn } diff --git a/src/modules/welcomeq/welcomeq.qml b/src/modules/welcomeq/welcomeq.qml index 7ba8933c8..e749a621c 100644 --- a/src/modules/welcomeq/welcomeq.qml +++ b/src/modules/welcomeq/welcomeq.qml @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2020, Adriaan de Groot - * Copyright 2020, Anke Boersma + * SPDX-FileCopyrightText: 2020 Adriaan de Groot + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by From 5a3fb613d9694d2f29215337696ddd77eba2da6e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 02:09:23 +0200 Subject: [PATCH 25/54] REUSE: Default branding assets and explanation --- src/branding/README.md | 7 ++++++- src/branding/default/banner.png.license | 2 ++ src/branding/default/branding.desc | 3 +++ src/branding/default/languages.png.license | 2 ++ src/branding/default/show.qml | 7 ++++--- src/branding/default/squid.png.license | 2 ++ src/branding/default/stylesheet.qss | 4 ++++ 7 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 src/branding/default/banner.png.license create mode 100644 src/branding/default/languages.png.license create mode 100644 src/branding/default/squid.png.license diff --git a/src/branding/README.md b/src/branding/README.md index 099163836..234b2a9b1 100644 --- a/src/branding/README.md +++ b/src/branding/README.md @@ -1,5 +1,10 @@ # Branding directory + + Branding components can go here, or they can be installed separately. A branding component is a subdirectory with a `branding.desc` descriptor @@ -66,7 +71,7 @@ The setting *slideshowAPI* in `branding.desc` indicates which one to use for a given branding slideshow. Which API to use is really a function of the QML. Expect the version 1 API to be deprecated in the course of Calamares 3.3. -In Calamares 3.2.13 support for activation notification to the QML +In Calamares 3.2.13 support for activation notification to the QML parts is improved: - If the root object has a property *activatedInCalamares* (the examples do), then that property is set to *true* when the slideshow becomes visible diff --git a/src/branding/default/banner.png.license b/src/branding/default/banner.png.license new file mode 100644 index 000000000..38aa3617e --- /dev/null +++ b/src/branding/default/banner.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2020 Adriaan de Groot +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/branding/default/branding.desc b/src/branding/default/branding.desc index fc0a16f7e..c3ef2df72 100644 --- a/src/branding/default/branding.desc +++ b/src/branding/default/branding.desc @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# # Product branding information. This influences some global # user-visible aspects of Calamares, such as the product # name, window behavior, and the slideshow during installation. diff --git a/src/branding/default/languages.png.license b/src/branding/default/languages.png.license new file mode 100644 index 000000000..ea8264571 --- /dev/null +++ b/src/branding/default/languages.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2015 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/branding/default/show.qml b/src/branding/default/show.qml index dcb0f9257..92917cc5c 100644 --- a/src/branding/default/show.qml +++ b/src/branding/default/show.qml @@ -1,7 +1,8 @@ /* === This file is part of Calamares - === * - * Copyright 2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -78,7 +79,7 @@ Presentation console.log("QML Component (default slideshow) activated"); presentation.currentSlide = 0; } - + function onLeave() { console.log("QML Component (default slideshow) deactivated"); } diff --git a/src/branding/default/squid.png.license b/src/branding/default/squid.png.license new file mode 100644 index 000000000..cc08e1f9f --- /dev/null +++ b/src/branding/default/squid.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2014 Teo Mrnjavac +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/branding/default/stylesheet.qss b/src/branding/default/stylesheet.qss index 72dd91ba4..5c3673847 100644 --- a/src/branding/default/stylesheet.qss +++ b/src/branding/default/stylesheet.qss @@ -1,5 +1,9 @@ /* + * SPDX-FileCopyrightText: no + * SPDX-License-Identifier: CC0-1.0 + */ +/* A branding component can ship a stylesheet (like this one) which is applied to parts of the Calamares user-interface. In principle, all parts can be styled through CSS. From 7a78f2600e0e973def13c6d1d1378e1092f6446b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 01:41:43 +0200 Subject: [PATCH 26/54] REUSE: dep5-style licensing For some dozens of files, adding license information in or next to the file is unwanted: - the translations are variable, and licensing information embedded in them is removed on update; since the translations are derived from the sources, blanket-license them as GPL-3.0-or-later - FreeBSD packaging (ports) directories have a specific structure .. and more cases like that. See the dep5 file for details. --- .reuse/dep5 | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 .reuse/dep5 diff --git a/.reuse/dep5 b/.reuse/dep5 new file mode 100644 index 000000000..6ed0da149 --- /dev/null +++ b/.reuse/dep5 @@ -0,0 +1,99 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Calamares +Source: https://github.com/calamares/calamares.git + +### ACTUAL LICENSES +# +# Images in the locale module are a bit unclear; they were added +# by Teo in 2014 but I suspect they came from somewhere else. +# +Files: src/modules/locale/images/timezone*.png +License: GPL-3.0-or-later +Copyright: 2014 Teo Mrnjavac + +Files: man/calamares.8 +License: GPL-3.0-or-later +Copyright: 2017 Jonathan Carter + +### BUILD ARTIFACTS / NOT SOURCE +# +# QRC Files are basically build artifacts +# +FILES: src/modules/*/*.qrc +License: CC0-1.0 +Copyright: no + +# GitHub issue templates are not part of the source +# +Files: .github/ISSUE_TEMPLATE/* +License: CC0-1.0 +Copyright: no + +# Packaging information +# +Files: data/FreeBSD/distinfo data/FreeBSD/pkg-descr data/FreeBSD/pkg-plist +License: CC0-1.0 +Copyright: no + +# Example data for timezones, which is copied out of zoneinfo, +# which has this notice: +# +# This file is in the public domain, so clarified as of +# 2009-05-17 by Arthur David Olson. +# +Files: data/example-root/usr/share/zoneinfo/Zulu data/example-root/usr/share/zoneinfo/UTC data/example-root/usr/share/zoneinfo/America/New_York +License: CC0-1.0 +Copyright: no + +### TRANSLATIONS +# +# .desktop files and template change only with translation +# +FILES: calamares.desktop* +License: CC0-1.0 +Copyright: no + +# Transifex translations derive from the source, and have no +# embedded copyright information. +# +Files: lang/*.ts +License: GPL-3.0-or-later +Copyright: 2020 Calamares authors and translators + +# Translations of branding slideshow are the same +Files: src/branding/default/lang/*.ts +License: GPL-3.0-or-later +Copyright: 2020 Calamares authors and translators + +# Python translation files have some copyright information, but +# it's generally very sketchy. +# +Files: lang/python.pot +License: GPL-3.0-or-later +Copyright: 2020 Calamares authors and translators + +Files: lang/python/*/LC_MESSAGES/python.po +License: GPL-3.0-or-later +Copyright: 2020 Calamares authors and translators + +Files: src/modules/dummypythonqt/lang/dummypythonqt.pot +License: GPL-3.0-or-later +Copyright: 2020 Calamares authors and translators + +Files: src/modules/dummypythonqt/lang/*/LC_MESSAGES/dummypythonqt.po +License: GPL-3.0-or-later +Copyright: 2020 Calamares authors and translators + +### FIXME ISSUES +# +# The .mo files are build artifacts +# +# FIXME: these shouldn't be in the source repo at all +# +Files: lang/python/*/LC_MESSAGES/python.mo +License: GPL-3.0-or-later +Copyright: 2020 Calamares authors and translators + +Files: src/modules/dummypythonqt/lang/*/LC_MESSAGES/dummypythonqt.mo +License: GPL-3.0-or-later +Copyright: 2020 Calamares authors and translators From 1cd9b93a224e3e4bf08a75ed1c86469fb26694ab Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 Aug 2020 16:05:56 +0200 Subject: [PATCH 27/54] REUSE: Giant boilerplate cleanup - point to main Calamares site in the 'part of' headers instead of to github (this is the "this file is part of Calamares" opening line for most files). - remove boilerplate from all source files, CMake modules and completions, this is the 3-paragraph summary of the GPL-3.0-or-later, which has a meaning entirely covered by the SPDX tag. --- CMakeLists.txt | 15 ++----------- CMakeModules/BoostPython3.cmake | 2 +- CMakeModules/CMakeColors.cmake | 2 +- CMakeModules/CMakeDateStamp.cmake | 2 +- CMakeModules/CMakeVersionSource.cmake | 2 +- .../CalamaresAddBrandingSubdirectory.cmake | 14 ++----------- CMakeModules/CalamaresAddLibrary.cmake | 14 ++----------- .../CalamaresAddModuleSubdirectory.cmake | 14 ++----------- CMakeModules/CalamaresAddPlugin.cmake | 14 ++----------- CMakeModules/CalamaresAddTest.cmake | 14 ++----------- CMakeModules/CalamaresAddTranslations.cmake | 14 ++----------- CMakeModules/CalamaresAutomoc.cmake | 14 ++----------- CMakeModules/FindCrypt.cmake | 2 +- CMakeModules/FindLibPWQuality.cmake | 2 +- CMakeModules/FindPythonQt.cmake | 2 +- CMakeModules/FindYAMLCPP.cmake | 2 +- ci/txcheck.sh | 2 +- ci/txpull.sh | 2 +- ci/txpush.sh | 2 +- data/completion/bash/calamares | 14 ++----------- lang/CMakeLists.txt | 2 +- lang/txload.cpp | 19 ++++------------- src/CMakeLists.txt | 2 +- src/branding/CMakeLists.txt | 2 +- src/branding/default/show.qml | 14 ++----------- src/calamares/CMakeLists.txt | 2 +- src/calamares/CalamaresApplication.cpp | 14 ++----------- src/calamares/CalamaresApplication.h | 14 ++----------- src/calamares/CalamaresWindow.cpp | 14 ++----------- src/calamares/CalamaresWindow.h | 14 ++----------- src/calamares/DebugWindow.cpp | 14 ++----------- src/calamares/DebugWindow.h | 14 ++----------- src/calamares/VariantModel.cpp | 14 ++----------- src/calamares/VariantModel.h | 14 ++----------- src/calamares/main.cpp | 14 ++----------- .../progresstree/ProgressTreeDelegate.cpp | 14 ++----------- .../progresstree/ProgressTreeDelegate.h | 14 ++----------- .../progresstree/ProgressTreeView.cpp | 14 ++----------- src/calamares/progresstree/ProgressTreeView.h | 14 ++----------- src/calamares/test_conf.cpp | 14 ++----------- src/calamares/testmain.cpp | 14 ++----------- src/libcalamares/CMakeLists.txt | 2 +- src/libcalamares/CalamaresConfig.h.in | 19 +++-------------- src/libcalamares/CppJob.cpp | 21 ++++--------------- src/libcalamares/CppJob.h | 21 ++++--------------- src/libcalamares/DllMacro.h | 19 +++-------------- src/libcalamares/GlobalStorage.cpp | 14 ++----------- src/libcalamares/GlobalStorage.h | 14 ++----------- src/libcalamares/Job.cpp | 19 +++-------------- src/libcalamares/Job.h | 14 ++----------- src/libcalamares/JobExample.cpp | 21 ++++--------------- src/libcalamares/JobExample.h | 21 ++++--------------- src/libcalamares/JobQueue.cpp | 19 +++-------------- src/libcalamares/JobQueue.h | 19 +++-------------- src/libcalamares/ProcessJob.cpp | 21 ++++--------------- src/libcalamares/ProcessJob.h | 21 ++++--------------- src/libcalamares/PythonHelper.cpp | 21 ++++--------------- src/libcalamares/PythonHelper.h | 21 ++++--------------- src/libcalamares/PythonJob.cpp | 19 +++-------------- src/libcalamares/PythonJob.h | 19 +++-------------- src/libcalamares/PythonJobApi.cpp | 21 ++++--------------- src/libcalamares/PythonJobApi.h | 21 ++++--------------- src/libcalamares/Settings.cpp | 14 ++----------- src/libcalamares/Settings.h | 14 ++----------- src/libcalamares/Tests.cpp | 14 ++----------- src/libcalamares/geoip/GeoIPFixed.cpp | 20 ++++-------------- src/libcalamares/geoip/GeoIPFixed.h | 20 ++++-------------- src/libcalamares/geoip/GeoIPJSON.cpp | 21 ++++--------------- src/libcalamares/geoip/GeoIPJSON.h | 21 ++++--------------- src/libcalamares/geoip/GeoIPTests.cpp | 21 ++++--------------- src/libcalamares/geoip/GeoIPTests.h | 21 ++++--------------- src/libcalamares/geoip/GeoIPXML.cpp | 21 ++++--------------- src/libcalamares/geoip/GeoIPXML.h | 21 ++++--------------- src/libcalamares/geoip/Handler.cpp | 21 ++++--------------- src/libcalamares/geoip/Handler.h | 21 ++++--------------- src/libcalamares/geoip/Interface.cpp | 19 +++-------------- src/libcalamares/geoip/Interface.h | 21 ++++--------------- src/libcalamares/geoip/test_geoip.cpp | 21 ++++--------------- src/libcalamares/locale/CountryData_p.cpp | 2 +- src/libcalamares/locale/Label.cpp | 14 ++----------- src/libcalamares/locale/Label.h | 14 ++----------- src/libcalamares/locale/LabelModel.cpp | 14 ++----------- src/libcalamares/locale/LabelModel.h | 14 ++----------- src/libcalamares/locale/Lookup.cpp | 14 ++----------- src/libcalamares/locale/Lookup.h | 14 ++----------- src/libcalamares/locale/Tests.cpp | 14 ++----------- src/libcalamares/locale/TimeZone.cpp | 14 ++----------- src/libcalamares/locale/TimeZone.h | 14 ++----------- .../locale/TranslatableConfiguration.cpp | 14 ++----------- .../locale/TranslatableConfiguration.h | 14 ++----------- .../locale/TranslatableString.cpp | 14 ++----------- src/libcalamares/locale/TranslatableString.h | 14 ++----------- src/libcalamares/locale/cldr-extractor.py | 4 ++-- src/libcalamares/locale/zone-extractor.py | 4 ++-- src/libcalamares/modulesystem/Actions.h | 14 ++----------- src/libcalamares/modulesystem/Descriptor.cpp | 2 +- src/libcalamares/modulesystem/Descriptor.h | 14 ++----------- src/libcalamares/modulesystem/InstanceKey.cpp | 14 ++----------- src/libcalamares/modulesystem/InstanceKey.h | 14 ++----------- src/libcalamares/modulesystem/Module.cpp | 14 ++----------- src/libcalamares/modulesystem/Module.h | 14 ++----------- src/libcalamares/modulesystem/Requirement.h | 14 ++----------- .../modulesystem/RequirementsChecker.cpp | 14 ++----------- .../modulesystem/RequirementsChecker.h | 14 ++----------- .../modulesystem/RequirementsModel.cpp | 14 ++----------- .../modulesystem/RequirementsModel.h | 14 ++----------- src/libcalamares/modulesystem/Tests.cpp | 14 ++----------- src/libcalamares/network/Manager.cpp | 19 +++-------------- src/libcalamares/network/Manager.h | 19 +++-------------- src/libcalamares/network/Tests.cpp | 21 ++++--------------- src/libcalamares/network/Tests.h | 21 ++++--------------- src/libcalamares/partition/FileSystem.cpp | 14 ++----------- src/libcalamares/partition/FileSystem.h | 14 ++----------- src/libcalamares/partition/KPMManager.cpp | 14 ++----------- src/libcalamares/partition/KPMManager.h | 14 ++----------- src/libcalamares/partition/KPMTests.cpp | 14 ++----------- src/libcalamares/partition/Mount.cpp | 14 ++----------- src/libcalamares/partition/Mount.h | 14 ++----------- .../partition/PartitionIterator.cpp | 14 ++----------- .../partition/PartitionIterator.h | 14 ++----------- src/libcalamares/partition/PartitionQuery.cpp | 14 ++----------- src/libcalamares/partition/PartitionQuery.h | 14 ++----------- src/libcalamares/partition/PartitionSize.cpp | 14 ++----------- src/libcalamares/partition/PartitionSize.h | 14 ++----------- src/libcalamares/partition/Sync.cpp | 14 ++----------- src/libcalamares/partition/Sync.h | 14 ++----------- src/libcalamares/partition/Tests.cpp | 14 ++----------- src/libcalamares/partition/Tests.h | 14 ++----------- src/libcalamares/utils/BoostPython.h | 14 ++----------- .../utils/CalamaresUtilsSystem.cpp | 14 ++----------- src/libcalamares/utils/CalamaresUtilsSystem.h | 14 ++----------- src/libcalamares/utils/CommandList.cpp | 14 ++----------- src/libcalamares/utils/CommandList.h | 14 ++----------- src/libcalamares/utils/Dirs.cpp | 14 ++----------- src/libcalamares/utils/Dirs.h | 14 ++----------- src/libcalamares/utils/Entropy.cpp | 14 ++----------- src/libcalamares/utils/Entropy.h | 14 ++----------- src/libcalamares/utils/Logger.cpp | 14 ++----------- src/libcalamares/utils/Logger.h | 14 ++----------- src/libcalamares/utils/NamedEnum.h | 14 ++----------- src/libcalamares/utils/NamedSuffix.h | 14 ++----------- src/libcalamares/utils/Permissions.cpp | 2 +- src/libcalamares/utils/Permissions.h | 2 +- src/libcalamares/utils/PluginFactory.cpp | 14 ++----------- src/libcalamares/utils/PluginFactory.h | 14 ++----------- src/libcalamares/utils/RAII.h | 14 ++----------- src/libcalamares/utils/Retranslator.cpp | 14 ++----------- src/libcalamares/utils/Retranslator.h | 14 ++----------- src/libcalamares/utils/String.cpp | 14 ++----------- src/libcalamares/utils/String.h | 14 ++----------- src/libcalamares/utils/TestPaths.cpp | 14 ++----------- src/libcalamares/utils/Tests.cpp | 14 ++----------- src/libcalamares/utils/Traits.h | 14 ++----------- src/libcalamares/utils/UMask.cpp | 14 ++----------- src/libcalamares/utils/UMask.h | 14 ++----------- src/libcalamares/utils/Units.h | 14 ++----------- src/libcalamares/utils/Variant.cpp | 14 ++----------- src/libcalamares/utils/Variant.h | 14 ++----------- src/libcalamares/utils/Yaml.cpp | 14 ++----------- src/libcalamares/utils/Yaml.h | 14 ++----------- src/libcalamares/utils/moc-warnings.h | 14 ++----------- src/libcalamaresui/Branding.cpp | 14 ++----------- src/libcalamaresui/Branding.h | 14 ++----------- src/libcalamaresui/CMakeLists.txt | 2 +- src/libcalamaresui/ViewManager.cpp | 14 ++----------- src/libcalamaresui/ViewManager.h | 14 ++----------- .../modulesystem/CppJobModule.cpp | 14 ++----------- .../modulesystem/CppJobModule.h | 14 ++----------- .../modulesystem/ModuleFactory.cpp | 14 ++----------- .../modulesystem/ModuleFactory.h | 14 ++----------- .../modulesystem/ModuleManager.cpp | 14 ++----------- .../modulesystem/ModuleManager.h | 14 ++----------- .../modulesystem/ProcessJobModule.cpp | 14 ++----------- .../modulesystem/ProcessJobModule.h | 14 ++----------- .../modulesystem/PythonJobModule.cpp | 14 ++----------- .../modulesystem/PythonJobModule.h | 14 ++----------- .../modulesystem/PythonQtViewModule.cpp | 14 ++----------- .../modulesystem/PythonQtViewModule.h | 14 ++----------- .../modulesystem/ViewModule.cpp | 14 ++----------- src/libcalamaresui/modulesystem/ViewModule.h | 14 ++----------- .../utils/CalamaresUtilsGui.cpp | 14 ++----------- src/libcalamaresui/utils/CalamaresUtilsGui.h | 14 ++----------- src/libcalamaresui/utils/ImageRegistry.cpp | 2 +- src/libcalamaresui/utils/ImageRegistry.h | 2 +- src/libcalamaresui/utils/Paste.cpp | 14 ++----------- src/libcalamaresui/utils/Paste.h | 14 ++----------- src/libcalamaresui/utils/PythonQtUtils.cpp | 14 ++----------- src/libcalamaresui/utils/PythonQtUtils.h | 14 ++----------- src/libcalamaresui/utils/Qml.cpp | 14 ++----------- src/libcalamaresui/utils/Qml.h | 14 ++----------- .../viewpages/BlankViewStep.cpp | 14 ++----------- src/libcalamaresui/viewpages/BlankViewStep.h | 14 ++----------- .../viewpages/ExecutionViewStep.cpp | 14 ++----------- .../viewpages/ExecutionViewStep.h | 14 ++----------- .../PythonQtGlobalStorageWrapper.cpp | 14 ++----------- .../viewpages/PythonQtGlobalStorageWrapper.h | 14 ++----------- src/libcalamaresui/viewpages/PythonQtJob.cpp | 14 ++----------- src/libcalamaresui/viewpages/PythonQtJob.h | 14 ++----------- .../viewpages/PythonQtUtilsWrapper.cpp | 14 ++----------- .../viewpages/PythonQtUtilsWrapper.h | 14 ++----------- .../viewpages/PythonQtViewStep.cpp | 14 ++----------- .../viewpages/PythonQtViewStep.h | 14 ++----------- src/libcalamaresui/viewpages/QmlViewStep.cpp | 14 ++----------- src/libcalamaresui/viewpages/QmlViewStep.h | 14 ++----------- src/libcalamaresui/viewpages/Slideshow.cpp | 14 ++----------- src/libcalamaresui/viewpages/Slideshow.h | 14 ++----------- src/libcalamaresui/viewpages/ViewStep.cpp | 14 ++----------- src/libcalamaresui/viewpages/ViewStep.h | 14 ++----------- src/libcalamaresui/widgets/ClickableLabel.cpp | 14 ++----------- src/libcalamaresui/widgets/ClickableLabel.h | 14 ++----------- .../widgets/FixedAspectRatioLabel.cpp | 14 ++----------- .../widgets/FixedAspectRatioLabel.h | 14 ++----------- .../widgets/PrettyRadioButton.cpp | 14 ++----------- .../widgets/PrettyRadioButton.h | 14 ++----------- src/libcalamaresui/widgets/WaitingWidget.cpp | 14 ++----------- src/libcalamaresui/widgets/WaitingWidget.h | 14 ++----------- src/modules/CMakeLists.txt | 2 +- src/modules/bootloader/main.py | 14 ++----------- src/modules/contextualprocess/Binding.h | 14 ++----------- src/modules/contextualprocess/CMakeLists.txt | 2 +- .../ContextualProcessJob.cpp | 14 ++----------- .../contextualprocess/ContextualProcessJob.h | 14 ++----------- src/modules/contextualprocess/Tests.cpp | 14 ++----------- src/modules/contextualprocess/Tests.h | 14 ++----------- src/modules/displaymanager/main.py | 14 ++----------- src/modules/dracut/main.py | 14 ++----------- src/modules/dracutlukscfg/CMakeLists.txt | 2 +- .../dracutlukscfg/DracutLuksCfgJob.cpp | 14 ++----------- src/modules/dracutlukscfg/DracutLuksCfgJob.h | 14 ++----------- src/modules/dummycpp/CMakeLists.txt | 2 +- src/modules/dummycpp/DummyCppJob.cpp | 14 ++----------- src/modules/dummycpp/DummyCppJob.h | 14 ++----------- src/modules/dummypython/main.py | 14 ++----------- src/modules/dummypythonqt/main.py | 14 ++----------- src/modules/finished/CMakeLists.txt | 2 +- src/modules/finished/FinishedPage.cpp | 14 ++----------- src/modules/finished/FinishedPage.h | 14 ++----------- src/modules/finished/FinishedViewStep.cpp | 14 ++----------- src/modules/finished/FinishedViewStep.h | 14 ++----------- src/modules/fsresizer/CMakeLists.txt | 2 +- src/modules/fsresizer/ResizeFSJob.cpp | 14 ++----------- src/modules/fsresizer/ResizeFSJob.h | 14 ++----------- src/modules/fsresizer/Tests.cpp | 14 ++----------- src/modules/fsresizer/Tests.h | 14 ++----------- src/modules/fstab/main.py | 14 ++----------- src/modules/grubcfg/main.py | 14 ++----------- src/modules/hostinfo/CMakeLists.txt | 2 +- src/modules/hostinfo/HostInfoJob.cpp | 14 ++----------- src/modules/hostinfo/HostInfoJob.h | 14 ++----------- src/modules/hostinfo/Tests.cpp | 14 ++----------- src/modules/hwclock/main.py | 14 ++----------- src/modules/initcpio/CMakeLists.txt | 2 +- src/modules/initcpio/InitcpioJob.cpp | 14 ++----------- src/modules/initcpio/InitcpioJob.h | 14 ++----------- src/modules/initcpio/Tests.cpp | 14 ++----------- src/modules/initcpio/Tests.h | 14 ++----------- src/modules/initcpiocfg/main.py | 14 ++----------- src/modules/initramfs/CMakeLists.txt | 2 +- src/modules/initramfs/InitramfsJob.cpp | 14 ++----------- src/modules/initramfs/InitramfsJob.h | 14 ++----------- src/modules/initramfs/Tests.cpp | 14 ++----------- src/modules/initramfs/Tests.h | 14 ++----------- src/modules/initramfscfg/main.py | 14 ++----------- .../interactiveterminal/CMakeLists.txt | 2 +- .../InteractiveTerminalPage.cpp | 14 ++----------- .../InteractiveTerminalPage.h | 14 ++----------- .../InteractiveTerminalViewStep.cpp | 14 ++----------- .../InteractiveTerminalViewStep.h | 14 ++----------- src/modules/keyboard/CMakeLists.txt | 2 +- src/modules/keyboard/Config.cpp | 14 ++----------- src/modules/keyboard/Config.h | 14 ++----------- src/modules/keyboard/KeyboardLayoutModel.cpp | 14 ++----------- src/modules/keyboard/KeyboardLayoutModel.h | 14 ++----------- src/modules/keyboard/KeyboardPage.cpp | 14 ++----------- src/modules/keyboard/KeyboardPage.h | 14 ++----------- src/modules/keyboard/KeyboardViewStep.cpp | 14 ++----------- src/modules/keyboard/KeyboardViewStep.h | 14 ++----------- src/modules/keyboard/SetKeyboardLayoutJob.cpp | 14 ++----------- src/modules/keyboard/SetKeyboardLayoutJob.h | 14 ++----------- .../keyboardwidget/keyboardglobal.cpp | 14 ++----------- .../keyboard/keyboardwidget/keyboardglobal.h | 14 ++----------- .../keyboardwidget/keyboardpreview.cpp | 14 ++----------- .../keyboard/keyboardwidget/keyboardpreview.h | 14 ++----------- src/modules/keyboardq/CMakeLists.txt | 2 +- src/modules/keyboardq/KeyboardQmlViewStep.cpp | 14 ++----------- src/modules/keyboardq/KeyboardQmlViewStep.h | 14 ++----------- src/modules/license/CMakeLists.txt | 2 +- src/modules/license/LicensePage.cpp | 14 ++----------- src/modules/license/LicensePage.h | 14 ++----------- src/modules/license/LicenseViewStep.cpp | 14 ++----------- src/modules/license/LicenseViewStep.h | 14 ++----------- src/modules/license/LicenseWidget.cpp | 14 ++----------- src/modules/license/LicenseWidget.h | 14 ++----------- src/modules/locale/CMakeLists.txt | 2 +- src/modules/locale/Config.cpp | 14 ++----------- src/modules/locale/Config.h | 14 ++----------- src/modules/locale/LCLocaleDialog.cpp | 14 ++----------- src/modules/locale/LCLocaleDialog.h | 14 ++----------- src/modules/locale/LocaleConfiguration.cpp | 14 ++----------- src/modules/locale/LocaleConfiguration.h | 14 ++----------- src/modules/locale/LocalePage.cpp | 14 ++----------- src/modules/locale/LocalePage.h | 14 ++----------- src/modules/locale/LocaleViewStep.cpp | 14 ++----------- src/modules/locale/LocaleViewStep.h | 14 ++----------- src/modules/locale/SetTimezoneJob.cpp | 14 ++----------- src/modules/locale/SetTimezoneJob.h | 14 ++----------- src/modules/locale/Tests.cpp | 14 ++----------- .../locale/timezonewidget/TimeZoneImage.cpp | 14 ++----------- .../locale/timezonewidget/TimeZoneImage.h | 14 ++----------- .../locale/timezonewidget/timezonewidget.cpp | 14 ++----------- .../locale/timezonewidget/timezonewidget.h | 14 ++----------- src/modules/localecfg/main.py | 14 ++----------- src/modules/localeq/CMakeLists.txt | 2 +- src/modules/localeq/LocaleQmlViewStep.cpp | 14 ++----------- src/modules/localeq/LocaleQmlViewStep.h | 14 ++----------- src/modules/localeq/Map.qml | 14 ++----------- src/modules/localeq/Offline.qml | 14 ++----------- src/modules/localeq/i18n.qml | 14 ++----------- src/modules/localeq/localeq.qml | 14 ++----------- src/modules/luksbootkeyfile/CMakeLists.txt | 2 +- .../luksbootkeyfile/LuksBootKeyFileJob.cpp | 2 +- .../luksbootkeyfile/LuksBootKeyFileJob.h | 2 +- src/modules/luksopenswaphookcfg/main.py | 14 ++----------- src/modules/machineid/CMakeLists.txt | 2 +- src/modules/machineid/MachineIdJob.cpp | 14 ++----------- src/modules/machineid/MachineIdJob.h | 14 ++----------- src/modules/machineid/Tests.cpp | 14 ++----------- src/modules/machineid/Workers.cpp | 14 ++----------- src/modules/machineid/Workers.h | 14 ++----------- src/modules/mkinitfs/main.py | 14 ++----------- src/modules/mount/main.py | 14 ++----------- src/modules/netinstall/CMakeLists.txt | 2 +- src/modules/netinstall/Config.cpp | 12 +---------- src/modules/netinstall/Config.h | 12 +---------- src/modules/netinstall/NetInstallPage.cpp | 12 +---------- src/modules/netinstall/NetInstallPage.h | 12 +---------- src/modules/netinstall/NetInstallViewStep.cpp | 12 +---------- src/modules/netinstall/NetInstallViewStep.h | 12 +---------- src/modules/netinstall/PackageModel.cpp | 14 ++----------- src/modules/netinstall/PackageModel.h | 14 ++----------- src/modules/netinstall/PackageTreeItem.cpp | 14 ++----------- src/modules/netinstall/PackageTreeItem.h | 14 ++----------- src/modules/netinstall/Tests.cpp | 14 ++----------- src/modules/networkcfg/main.py | 14 ++----------- src/modules/notesqml/CMakeLists.txt | 2 +- src/modules/notesqml/NotesQmlViewStep.cpp | 2 +- src/modules/notesqml/NotesQmlViewStep.h | 2 +- .../notesqml/examples/notesqml.qml.example | 2 +- src/modules/notesqml/notesqml.qml | 2 +- src/modules/oemid/CMakeLists.txt | 2 +- src/modules/oemid/IDJob.cpp | 14 ++----------- src/modules/oemid/IDJob.h | 14 ++----------- src/modules/oemid/OEMViewStep.cpp | 14 ++----------- src/modules/oemid/OEMViewStep.h | 14 ++----------- src/modules/openrcdmcryptcfg/main.py | 14 ++----------- src/modules/packagechooser/CMakeLists.txt | 2 +- src/modules/packagechooser/ItemAppData.cpp | 14 ++----------- src/modules/packagechooser/ItemAppData.h | 14 ++----------- src/modules/packagechooser/ItemAppStream.cpp | 14 ++----------- src/modules/packagechooser/ItemAppStream.h | 14 ++----------- .../packagechooser/PackageChooserPage.cpp | 14 ++----------- .../packagechooser/PackageChooserPage.h | 14 ++----------- .../packagechooser/PackageChooserViewStep.cpp | 14 ++----------- .../packagechooser/PackageChooserViewStep.h | 14 ++----------- src/modules/packagechooser/PackageModel.cpp | 14 ++----------- src/modules/packagechooser/PackageModel.h | 14 ++----------- src/modules/packagechooser/Tests.cpp | 14 ++----------- src/modules/packagechooser/Tests.h | 14 ++----------- src/modules/packages/main.py | 14 ++----------- src/modules/partition/CMakeLists.txt | 2 +- .../partition/core/BootLoaderModel.cpp | 14 ++----------- src/modules/partition/core/BootLoaderModel.h | 14 ++----------- src/modules/partition/core/ColorUtils.cpp | 14 ++----------- src/modules/partition/core/ColorUtils.h | 14 ++----------- src/modules/partition/core/Config.cpp | 14 ++----------- src/modules/partition/core/Config.h | 14 ++----------- src/modules/partition/core/DeviceList.cpp | 14 ++----------- src/modules/partition/core/DeviceList.h | 14 ++----------- src/modules/partition/core/DeviceModel.cpp | 14 ++----------- src/modules/partition/core/DeviceModel.h | 14 ++----------- src/modules/partition/core/KPMHelpers.cpp | 14 ++----------- src/modules/partition/core/KPMHelpers.h | 14 ++----------- src/modules/partition/core/OsproberEntry.h | 14 ++----------- src/modules/partition/core/PartUtils.cpp | 14 ++----------- src/modules/partition/core/PartUtils.h | 14 ++----------- .../partition/core/PartitionActions.cpp | 14 ++----------- src/modules/partition/core/PartitionActions.h | 14 ++----------- .../partition/core/PartitionCoreModule.cpp | 14 ++----------- .../partition/core/PartitionCoreModule.h | 14 ++----------- src/modules/partition/core/PartitionInfo.cpp | 14 ++----------- src/modules/partition/core/PartitionInfo.h | 14 ++----------- .../partition/core/PartitionLayout.cpp | 14 ++----------- src/modules/partition/core/PartitionLayout.h | 14 ++----------- src/modules/partition/core/PartitionModel.cpp | 14 ++----------- src/modules/partition/core/PartitionModel.h | 14 ++----------- src/modules/partition/gui/BootInfoWidget.cpp | 14 ++----------- src/modules/partition/gui/BootInfoWidget.h | 14 ++----------- src/modules/partition/gui/ChoicePage.cpp | 14 ++----------- src/modules/partition/gui/ChoicePage.h | 14 ++----------- .../partition/gui/CreatePartitionDialog.cpp | 14 ++----------- .../partition/gui/CreatePartitionDialog.h | 14 ++----------- .../partition/gui/CreateVolumeGroupDialog.cpp | 14 ++----------- .../partition/gui/CreateVolumeGroupDialog.h | 14 ++----------- .../partition/gui/DeviceInfoWidget.cpp | 14 ++----------- src/modules/partition/gui/DeviceInfoWidget.h | 14 ++----------- .../gui/EditExistingPartitionDialog.cpp | 14 ++----------- .../gui/EditExistingPartitionDialog.h | 14 ++----------- src/modules/partition/gui/EncryptWidget.cpp | 14 ++----------- src/modules/partition/gui/EncryptWidget.h | 14 ++----------- .../gui/ListPhysicalVolumeWidgetItem.cpp | 14 ++----------- .../gui/ListPhysicalVolumeWidgetItem.h | 14 ++----------- .../partition/gui/PartitionBarsView.cpp | 14 ++----------- src/modules/partition/gui/PartitionBarsView.h | 14 ++----------- .../partition/gui/PartitionDialogHelpers.cpp | 14 ++----------- .../partition/gui/PartitionDialogHelpers.h | 14 ++----------- .../partition/gui/PartitionLabelsView.cpp | 14 ++----------- .../partition/gui/PartitionLabelsView.h | 14 ++----------- src/modules/partition/gui/PartitionPage.cpp | 14 ++----------- src/modules/partition/gui/PartitionPage.h | 14 ++----------- .../partition/gui/PartitionSizeController.cpp | 14 ++----------- .../partition/gui/PartitionSizeController.h | 14 ++----------- .../partition/gui/PartitionSplitterWidget.cpp | 14 ++----------- .../partition/gui/PartitionSplitterWidget.h | 14 ++----------- .../gui/PartitionViewSelectionFilter.h | 14 ++----------- .../partition/gui/PartitionViewStep.cpp | 14 ++----------- src/modules/partition/gui/PartitionViewStep.h | 14 ++----------- src/modules/partition/gui/ReplaceWidget.cpp | 14 ++----------- src/modules/partition/gui/ReplaceWidget.h | 14 ++----------- .../partition/gui/ResizeVolumeGroupDialog.cpp | 14 ++----------- .../partition/gui/ResizeVolumeGroupDialog.h | 14 ++----------- src/modules/partition/gui/ScanningDialog.cpp | 14 ++----------- src/modules/partition/gui/ScanningDialog.h | 14 ++----------- .../partition/gui/VolumeGroupBaseDialog.cpp | 14 ++----------- .../partition/gui/VolumeGroupBaseDialog.h | 14 ++----------- src/modules/partition/jobs/ClearMountsJob.cpp | 14 ++----------- src/modules/partition/jobs/ClearMountsJob.h | 14 ++----------- .../partition/jobs/ClearTempMountsJob.cpp | 14 ++----------- .../partition/jobs/ClearTempMountsJob.h | 14 ++----------- .../partition/jobs/CreatePartitionJob.cpp | 14 ++----------- .../partition/jobs/CreatePartitionJob.h | 14 ++----------- .../jobs/CreatePartitionTableJob.cpp | 14 ++----------- .../partition/jobs/CreatePartitionTableJob.h | 14 ++----------- .../partition/jobs/CreateVolumeGroupJob.cpp | 14 ++----------- .../partition/jobs/CreateVolumeGroupJob.h | 14 ++----------- .../jobs/DeactivateVolumeGroupJob.cpp | 14 ++----------- .../partition/jobs/DeactivateVolumeGroupJob.h | 14 ++----------- .../partition/jobs/DeletePartitionJob.cpp | 14 ++----------- .../partition/jobs/DeletePartitionJob.h | 14 ++----------- .../partition/jobs/FillGlobalStorageJob.cpp | 14 ++----------- .../partition/jobs/FillGlobalStorageJob.h | 14 ++----------- .../partition/jobs/FormatPartitionJob.cpp | 14 ++----------- .../partition/jobs/FormatPartitionJob.h | 14 ++----------- src/modules/partition/jobs/PartitionJob.cpp | 14 ++----------- src/modules/partition/jobs/PartitionJob.h | 14 ++----------- .../partition/jobs/RemoveVolumeGroupJob.cpp | 14 ++----------- .../partition/jobs/RemoveVolumeGroupJob.h | 14 ++----------- .../partition/jobs/ResizePartitionJob.cpp | 14 ++----------- .../partition/jobs/ResizePartitionJob.h | 14 ++----------- .../partition/jobs/ResizeVolumeGroupJob.cpp | 14 ++----------- .../partition/jobs/ResizeVolumeGroupJob.h | 14 ++----------- .../partition/jobs/SetPartitionFlagsJob.cpp | 14 ++----------- .../partition/jobs/SetPartitionFlagsJob.h | 14 ++----------- src/modules/partition/tests/CMakeLists.txt | 2 +- .../partition/tests/ClearMountsJobTests.cpp | 14 ++----------- .../partition/tests/ClearMountsJobTests.h | 14 ++----------- .../partition/tests/PartitionJobTests.cpp | 14 ++----------- .../partition/tests/PartitionJobTests.h | 14 ++----------- src/modules/plasmalnf/CMakeLists.txt | 2 +- src/modules/plasmalnf/PlasmaLnfJob.cpp | 14 ++----------- src/modules/plasmalnf/PlasmaLnfJob.h | 14 ++----------- src/modules/plasmalnf/PlasmaLnfPage.cpp | 14 ++----------- src/modules/plasmalnf/PlasmaLnfPage.h | 14 ++----------- src/modules/plasmalnf/PlasmaLnfViewStep.cpp | 14 ++----------- src/modules/plasmalnf/PlasmaLnfViewStep.h | 14 ++----------- src/modules/plasmalnf/ThemeInfo.h | 14 ++----------- src/modules/plasmalnf/ThemeWidget.cpp | 14 ++----------- src/modules/plasmalnf/ThemeWidget.h | 14 ++----------- src/modules/plymouthcfg/main.py | 14 ++----------- src/modules/preservefiles/CMakeLists.txt | 2 +- src/modules/preservefiles/PreserveFiles.cpp | 3 +-- src/modules/preservefiles/PreserveFiles.h | 3 +-- src/modules/rawfs/main.py | 14 ++----------- src/modules/removeuser/CMakeLists.txt | 2 +- src/modules/removeuser/RemoveUserJob.cpp | 14 ++----------- src/modules/removeuser/RemoveUserJob.h | 14 ++----------- src/modules/services-openrc/main.py | 14 ++----------- src/modules/services-systemd/main.py | 14 ++----------- src/modules/shellprocess/CMakeLists.txt | 2 +- src/modules/shellprocess/ShellProcessJob.cpp | 14 ++----------- src/modules/shellprocess/ShellProcessJob.h | 14 ++----------- src/modules/shellprocess/Tests.cpp | 14 ++----------- src/modules/shellprocess/Tests.h | 14 ++----------- src/modules/summary/CMakeLists.txt | 2 +- src/modules/summary/SummaryPage.cpp | 14 ++----------- src/modules/summary/SummaryPage.h | 14 ++----------- src/modules/summary/SummaryViewStep.cpp | 14 ++----------- src/modules/summary/SummaryViewStep.h | 14 ++----------- src/modules/tracking/CMakeLists.txt | 2 +- src/modules/tracking/Config.cpp | 14 ++----------- src/modules/tracking/Config.h | 14 ++----------- src/modules/tracking/Tests.cpp | 2 +- src/modules/tracking/TrackingJobs.cpp | 14 ++----------- src/modules/tracking/TrackingJobs.h | 14 ++----------- src/modules/tracking/TrackingPage.cpp | 14 ++----------- src/modules/tracking/TrackingPage.h | 14 ++----------- src/modules/tracking/TrackingType.h | 14 ++----------- src/modules/tracking/TrackingViewStep.cpp | 14 ++----------- src/modules/tracking/TrackingViewStep.h | 14 ++----------- src/modules/umount/main.py | 14 ++----------- src/modules/unpackfs/main.py | 14 ++----------- src/modules/users/CMakeLists.txt | 2 +- src/modules/users/CheckPWQuality.cpp | 14 ++----------- src/modules/users/CheckPWQuality.h | 14 ++----------- src/modules/users/Config.cpp | 14 ++----------- src/modules/users/Config.h | 14 ++----------- src/modules/users/CreateUserJob.cpp | 2 +- src/modules/users/CreateUserJob.h | 14 ++----------- src/modules/users/SetHostNameJob.cpp | 14 ++----------- src/modules/users/SetHostNameJob.h | 14 ++----------- src/modules/users/SetPasswordJob.cpp | 14 ++----------- src/modules/users/SetPasswordJob.h | 14 ++----------- src/modules/users/TestCreateUserJob.cpp | 14 ++----------- src/modules/users/TestPasswordJob.cpp | 14 ++----------- src/modules/users/TestSetHostNameJob.cpp | 14 ++----------- src/modules/users/Tests.cpp | 14 ++----------- src/modules/users/UsersPage.cpp | 14 ++----------- src/modules/users/UsersPage.h | 14 ++----------- src/modules/users/UsersViewStep.cpp | 14 ++----------- src/modules/users/UsersViewStep.h | 14 ++----------- src/modules/usersq/CMakeLists.txt | 2 +- src/modules/usersq/UsersQmlViewStep.cpp | 14 ++----------- src/modules/usersq/UsersQmlViewStep.h | 14 ++----------- src/modules/usersq/usersq.qml | 21 +++++-------------- src/modules/webview/CMakeLists.txt | 2 +- src/modules/webview/WebViewStep.cpp | 14 ++----------- src/modules/webview/WebViewStep.h | 14 ++----------- src/modules/welcome/CMakeLists.txt | 2 +- src/modules/welcome/Config.cpp | 14 ++----------- src/modules/welcome/Config.h | 14 ++----------- src/modules/welcome/WelcomePage.cpp | 14 ++----------- src/modules/welcome/WelcomePage.h | 14 ++----------- src/modules/welcome/WelcomeViewStep.cpp | 14 ++----------- src/modules/welcome/WelcomeViewStep.h | 14 ++----------- .../welcome/checker/CheckerContainer.cpp | 14 ++----------- .../welcome/checker/CheckerContainer.h | 14 ++----------- .../welcome/checker/GeneralRequirements.cpp | 14 ++----------- .../welcome/checker/GeneralRequirements.h | 14 ++----------- src/modules/welcome/checker/ResultWidget.cpp | 14 ++----------- src/modules/welcome/checker/ResultWidget.h | 14 ++----------- .../welcome/checker/ResultsListWidget.cpp | 14 ++----------- .../welcome/checker/ResultsListWidget.h | 14 ++----------- src/modules/welcome/checker/partman_devices.c | 14 ++----------- src/modules/welcome/checker/partman_devices.h | 14 ++----------- src/modules/welcomeq/CMakeLists.txt | 2 +- src/modules/welcomeq/Recommended.qml | 14 ++----------- src/modules/welcomeq/Requirements.qml | 14 ++----------- src/modules/welcomeq/WelcomeQmlViewStep.cpp | 14 ++----------- src/modules/welcomeq/WelcomeQmlViewStep.h | 14 ++----------- src/modules/welcomeq/about.qml | 14 ++----------- src/modules/welcomeq/release_notes.qml | 14 ++----------- src/modules/welcomeq/welcomeq.qml | 14 ++----------- src/qml/calamares/CMakeLists.txt | 2 +- src/qml/calamares/slideshow/BackButton.qml | 14 ++----------- src/qml/calamares/slideshow/ForwardButton.qml | 14 ++----------- src/qml/calamares/slideshow/NavButton.qml | 14 ++----------- src/qml/calamares/slideshow/Presentation.qml | 2 +- src/qml/calamares/slideshow/Slide.qml | 2 +- src/qml/calamares/slideshow/SlideCounter.qml | 14 ++----------- 568 files changed, 1123 insertions(+), 6188 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e35253a10..4e95dad8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,22 +1,11 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2017 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # ### # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . +# Calamares is Free Software: see the License-Identifier above. # # Individual files may have different licenses (like the CMake # infrastructure, which is BSD-2-Clause licensed). Check the SPDX diff --git a/CMakeModules/BoostPython3.cmake b/CMakeModules/BoostPython3.cmake index e53f9072d..bd1d24e0e 100644 --- a/CMakeModules/BoostPython3.cmake +++ b/CMakeModules/BoostPython3.cmake @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Aurélien Gâteau # SPDX-FileCopyrightText: 2017 Adriaan de Groot diff --git a/CMakeModules/CMakeColors.cmake b/CMakeModules/CMakeColors.cmake index 7de050e9b..073c24de6 100644 --- a/CMakeModules/CMakeColors.cmake +++ b/CMakeModules/CMakeColors.cmake @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-FileCopyrightText: 2014 Kevin Kofler diff --git a/CMakeModules/CMakeDateStamp.cmake b/CMakeModules/CMakeDateStamp.cmake index 383475ca2..15482100f 100644 --- a/CMakeModules/CMakeDateStamp.cmake +++ b/CMakeModules/CMakeDateStamp.cmake @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-License-Identifier: BSD-2-Clause diff --git a/CMakeModules/CMakeVersionSource.cmake b/CMakeModules/CMakeVersionSource.cmake index 69ef8ee59..295fffa5d 100644 --- a/CMakeModules/CMakeVersionSource.cmake +++ b/CMakeModules/CMakeVersionSource.cmake @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-License-Identifier: BSD-2-Clause diff --git a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake index d0ecbae5d..062ad6706 100644 --- a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake +++ b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake @@ -1,21 +1,11 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-FileCopyrightText: 2017 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . # ### # diff --git a/CMakeModules/CalamaresAddLibrary.cmake b/CMakeModules/CalamaresAddLibrary.cmake index 892653ae6..0cbad7424 100644 --- a/CMakeModules/CalamaresAddLibrary.cmake +++ b/CMakeModules/CalamaresAddLibrary.cmake @@ -1,21 +1,11 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-FileCopyrightText: 2017 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . # ### # diff --git a/CMakeModules/CalamaresAddModuleSubdirectory.cmake b/CMakeModules/CalamaresAddModuleSubdirectory.cmake index 395cd936e..87f8547f8 100644 --- a/CMakeModules/CalamaresAddModuleSubdirectory.cmake +++ b/CMakeModules/CalamaresAddModuleSubdirectory.cmake @@ -1,21 +1,11 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-FileCopyrightText: 2017 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . # ### # diff --git a/CMakeModules/CalamaresAddPlugin.cmake b/CMakeModules/CalamaresAddPlugin.cmake index ad8531511..55865999c 100644 --- a/CMakeModules/CalamaresAddPlugin.cmake +++ b/CMakeModules/CalamaresAddPlugin.cmake @@ -1,21 +1,11 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . # ### # diff --git a/CMakeModules/CalamaresAddTest.cmake b/CMakeModules/CalamaresAddTest.cmake index 14f9d4144..5bedf81b5 100644 --- a/CMakeModules/CalamaresAddTest.cmake +++ b/CMakeModules/CalamaresAddTest.cmake @@ -1,20 +1,10 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . # ### # diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index 27ee1b917..4d2fa265c 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -1,20 +1,10 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2017 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . # ### # diff --git a/CMakeModules/CalamaresAutomoc.cmake b/CMakeModules/CalamaresAutomoc.cmake index 21ce35d9c..c7dbd72bf 100644 --- a/CMakeModules/CalamaresAutomoc.cmake +++ b/CMakeModules/CalamaresAutomoc.cmake @@ -1,20 +1,10 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . # ### # diff --git a/CMakeModules/FindCrypt.cmake b/CMakeModules/FindCrypt.cmake index 2a65f9d92..94f8a4510 100644 --- a/CMakeModules/FindCrypt.cmake +++ b/CMakeModules/FindCrypt.cmake @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-FileCopyrightText: 2017 Adriaan de Groot diff --git a/CMakeModules/FindLibPWQuality.cmake b/CMakeModules/FindLibPWQuality.cmake index 903c767bb..2a9943f3d 100644 --- a/CMakeModules/FindLibPWQuality.cmake +++ b/CMakeModules/FindLibPWQuality.cmake @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2018 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/CMakeModules/FindPythonQt.cmake b/CMakeModules/FindPythonQt.cmake index 700b38117..81208a86e 100644 --- a/CMakeModules/FindPythonQt.cmake +++ b/CMakeModules/FindPythonQt.cmake @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2016 Teo Mrnjavac # SPDX-FileCopyrightText: 2017 Adriaan de Groot diff --git a/CMakeModules/FindYAMLCPP.cmake b/CMakeModules/FindYAMLCPP.cmake index cc114de92..0752c7bd7 100644 --- a/CMakeModules/FindYAMLCPP.cmake +++ b/CMakeModules/FindYAMLCPP.cmake @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-FileCopyrightText: 2020 Adriaan de Groot diff --git a/ci/txcheck.sh b/ci/txcheck.sh index a2fb5a615..cedae6682 100644 --- a/ci/txcheck.sh +++ b/ci/txcheck.sh @@ -1,7 +1,7 @@ #! /bin/sh ### LICENSE -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/ci/txpull.sh b/ci/txpull.sh index 730e2a3f3..8c3a824cc 100755 --- a/ci/txpull.sh +++ b/ci/txpull.sh @@ -1,7 +1,7 @@ #!/bin/sh ### LICENSE -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac # SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot diff --git a/ci/txpush.sh b/ci/txpush.sh index 796f6cfc1..363a234e8 100755 --- a/ci/txpush.sh +++ b/ci/txpush.sh @@ -1,7 +1,7 @@ #!/bin/sh ### LICENSE -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac # SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot diff --git a/data/completion/bash/calamares b/data/completion/bash/calamares index 21f2edba4..a73ca38a9 100644 --- a/data/completion/bash/calamares +++ b/data/completion/bash/calamares @@ -1,20 +1,10 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Gaël PORTAY # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . _calamares() { diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt index 6c9b12b9e..790d6098a 100644 --- a/lang/CMakeLists.txt +++ b/lang/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2018 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/lang/txload.cpp b/lang/txload.cpp index 68a157b81..62dc13e7d 100644 --- a/lang/txload.cpp +++ b/lang/txload.cpp @@ -1,21 +1,10 @@ -/* === This file is part of Calamares - === - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. + * */ /* diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3d35ac3e4..e35a894cd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/branding/CMakeLists.txt b/src/branding/CMakeLists.txt index 6d99bbe4d..09d60118e 100644 --- a/src/branding/CMakeLists.txt +++ b/src/branding/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/branding/default/show.qml b/src/branding/default/show.qml index 92917cc5c..f4c50e629 100644 --- a/src/branding/default/show.qml +++ b/src/branding/default/show.qml @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ import QtQuick 2.0; diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index faec6d1a4..6d4eceb8a 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 2b93cc9d1..3f4bf808c 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CalamaresApplication.h" diff --git a/src/calamares/CalamaresApplication.h b/src/calamares/CalamaresApplication.h index b36577591..e7dea4c61 100644 --- a/src/calamares/CalamaresApplication.h +++ b/src/calamares/CalamaresApplication.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CALAMARESAPPLICATION_H diff --git a/src/calamares/CalamaresWindow.cpp b/src/calamares/CalamaresWindow.cpp index 2119670be..0960da10a 100644 --- a/src/calamares/CalamaresWindow.cpp +++ b/src/calamares/CalamaresWindow.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CalamaresWindow.h" diff --git a/src/calamares/CalamaresWindow.h b/src/calamares/CalamaresWindow.h index 9fa13b44f..8eed50ca5 100644 --- a/src/calamares/CalamaresWindow.h +++ b/src/calamares/CalamaresWindow.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CALAMARESWINDOW_H diff --git a/src/calamares/DebugWindow.cpp b/src/calamares/DebugWindow.cpp index c5effb45f..fecf71ea1 100644 --- a/src/calamares/DebugWindow.cpp +++ b/src/calamares/DebugWindow.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "DebugWindow.h" diff --git a/src/calamares/DebugWindow.h b/src/calamares/DebugWindow.h index e0e939912..a07487b4c 100644 --- a/src/calamares/DebugWindow.h +++ b/src/calamares/DebugWindow.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CALAMARES_DEBUGWINDOW_H diff --git a/src/calamares/VariantModel.cpp b/src/calamares/VariantModel.cpp index 9753787ad..8b0378f03 100644 --- a/src/calamares/VariantModel.cpp +++ b/src/calamares/VariantModel.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "VariantModel.h" diff --git a/src/calamares/VariantModel.h b/src/calamares/VariantModel.h index 7deafc88d..3b0b594b7 100644 --- a/src/calamares/VariantModel.h +++ b/src/calamares/VariantModel.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef VARIANTMODEL_H diff --git a/src/calamares/main.cpp b/src/calamares/main.cpp index c5815154f..d60108215 100644 --- a/src/calamares/main.cpp +++ b/src/calamares/main.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ diff --git a/src/calamares/progresstree/ProgressTreeDelegate.cpp b/src/calamares/progresstree/ProgressTreeDelegate.cpp index a11cd3795..48b5b4328 100644 --- a/src/calamares/progresstree/ProgressTreeDelegate.cpp +++ b/src/calamares/progresstree/ProgressTreeDelegate.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ProgressTreeDelegate.h" diff --git a/src/calamares/progresstree/ProgressTreeDelegate.h b/src/calamares/progresstree/ProgressTreeDelegate.h index 7a2641b7d..55dcf7ac4 100644 --- a/src/calamares/progresstree/ProgressTreeDelegate.h +++ b/src/calamares/progresstree/ProgressTreeDelegate.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PROGRESSTREEDELEGATE_H diff --git a/src/calamares/progresstree/ProgressTreeView.cpp b/src/calamares/progresstree/ProgressTreeView.cpp index ad8effd66..b953db64d 100644 --- a/src/calamares/progresstree/ProgressTreeView.cpp +++ b/src/calamares/progresstree/ProgressTreeView.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ProgressTreeView.h" diff --git a/src/calamares/progresstree/ProgressTreeView.h b/src/calamares/progresstree/ProgressTreeView.h index b72291a92..98bbe10b4 100644 --- a/src/calamares/progresstree/ProgressTreeView.h +++ b/src/calamares/progresstree/ProgressTreeView.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PROGRESSTREEVIEW_H diff --git a/src/calamares/test_conf.cpp b/src/calamares/test_conf.cpp index 18330d9a2..a1b663468 100644 --- a/src/calamares/test_conf.cpp +++ b/src/calamares/test_conf.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /** diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index 6e4384b62..7a7967f43 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /* diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index d915708f3..849896446 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/libcalamares/CalamaresConfig.h.in b/src/libcalamares/CalamaresConfig.h.in index c081b158f..3d551b8e8 100644 --- a/src/libcalamares/CalamaresConfig.h.in +++ b/src/libcalamares/CalamaresConfig.h.in @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ #ifndef CALAMARESCONFIG_H diff --git a/src/libcalamares/CppJob.cpp b/src/libcalamares/CppJob.cpp index a2647463a..45a321cc2 100644 --- a/src/libcalamares/CppJob.cpp +++ b/src/libcalamares/CppJob.cpp @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2016 Kevin Kofler - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/CppJob.h b/src/libcalamares/CppJob.h index ee093675a..7569debe9 100644 --- a/src/libcalamares/CppJob.h +++ b/src/libcalamares/CppJob.h @@ -1,24 +1,11 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2016 Kevin Kofler * SPDX-FileCopyrightText: 2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/DllMacro.h b/src/libcalamares/DllMacro.h index 5677e928b..662ace44d 100644 --- a/src/libcalamares/DllMacro.h +++ b/src/libcalamares/DllMacro.h @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/GlobalStorage.cpp b/src/libcalamares/GlobalStorage.cpp index 253a4d6ad..6cae46eeb 100644 --- a/src/libcalamares/GlobalStorage.cpp +++ b/src/libcalamares/GlobalStorage.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/GlobalStorage.h b/src/libcalamares/GlobalStorage.h index a12d78978..9d8e3849b 100644 --- a/src/libcalamares/GlobalStorage.h +++ b/src/libcalamares/GlobalStorage.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/Job.cpp b/src/libcalamares/Job.cpp index a7e67b5f6..902bb2b64 100644 --- a/src/libcalamares/Job.cpp +++ b/src/libcalamares/Job.cpp @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/Job.h b/src/libcalamares/Job.h index dd13f8608..ed349ab30 100644 --- a/src/libcalamares/Job.h +++ b/src/libcalamares/Job.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ #ifndef CALAMARES_JOB_H diff --git a/src/libcalamares/JobExample.cpp b/src/libcalamares/JobExample.cpp index ba085be6e..4852d3ae4 100644 --- a/src/libcalamares/JobExample.cpp +++ b/src/libcalamares/JobExample.cpp @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ #include "JobExample.h" diff --git a/src/libcalamares/JobExample.h b/src/libcalamares/JobExample.h index e0307f64a..5c527af6d 100644 --- a/src/libcalamares/JobExample.h +++ b/src/libcalamares/JobExample.h @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/JobQueue.cpp b/src/libcalamares/JobQueue.cpp index b39b43759..a09d03b38 100644 --- a/src/libcalamares/JobQueue.cpp +++ b/src/libcalamares/JobQueue.cpp @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/JobQueue.h b/src/libcalamares/JobQueue.h index 31b5407ef..0283172fb 100644 --- a/src/libcalamares/JobQueue.h +++ b/src/libcalamares/JobQueue.h @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/ProcessJob.cpp b/src/libcalamares/ProcessJob.cpp index c6cb94359..f7404438a 100644 --- a/src/libcalamares/ProcessJob.cpp +++ b/src/libcalamares/ProcessJob.cpp @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/ProcessJob.h b/src/libcalamares/ProcessJob.h index 75ef6f6e3..126eab1f9 100644 --- a/src/libcalamares/ProcessJob.h +++ b/src/libcalamares/ProcessJob.h @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/PythonHelper.cpp b/src/libcalamares/PythonHelper.cpp index 2f5418888..f13f5979f 100644 --- a/src/libcalamares/PythonHelper.cpp +++ b/src/libcalamares/PythonHelper.cpp @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/PythonHelper.h b/src/libcalamares/PythonHelper.h index 7acea5832..c439f4619 100644 --- a/src/libcalamares/PythonHelper.h +++ b/src/libcalamares/PythonHelper.h @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/PythonJob.cpp b/src/libcalamares/PythonJob.cpp index c1cfbbc1c..1f4680017 100644 --- a/src/libcalamares/PythonJob.cpp +++ b/src/libcalamares/PythonJob.cpp @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ #include "PythonJob.h" diff --git a/src/libcalamares/PythonJob.h b/src/libcalamares/PythonJob.h index b34b40b0b..5b5cfb7cc 100644 --- a/src/libcalamares/PythonJob.h +++ b/src/libcalamares/PythonJob.h @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/PythonJobApi.cpp b/src/libcalamares/PythonJobApi.cpp index 2f8818738..41fb82151 100644 --- a/src/libcalamares/PythonJobApi.cpp +++ b/src/libcalamares/PythonJobApi.cpp @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/PythonJobApi.h b/src/libcalamares/PythonJobApi.h index 6fd162912..3c7977c4f 100644 --- a/src/libcalamares/PythonJobApi.h +++ b/src/libcalamares/PythonJobApi.h @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/Settings.cpp b/src/libcalamares/Settings.cpp index 592ffd02d..dcb5c70b0 100644 --- a/src/libcalamares/Settings.cpp +++ b/src/libcalamares/Settings.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Gabriel Craciunescu @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/Settings.h b/src/libcalamares/Settings.h index 1cff4b34a..0abf3b866 100644 --- a/src/libcalamares/Settings.h +++ b/src/libcalamares/Settings.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Gabriel Craciunescu @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/Tests.cpp b/src/libcalamares/Tests.cpp index 68e1112c6..c7f1d6028 100644 --- a/src/libcalamares/Tests.cpp +++ b/src/libcalamares/Tests.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/geoip/GeoIPFixed.cpp b/src/libcalamares/geoip/GeoIPFixed.cpp index 69d5d3a4e..7e5efbd6c 100644 --- a/src/libcalamares/geoip/GeoIPFixed.cpp +++ b/src/libcalamares/geoip/GeoIPFixed.cpp @@ -1,22 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. + * */ #include "GeoIPFixed.h" diff --git a/src/libcalamares/geoip/GeoIPFixed.h b/src/libcalamares/geoip/GeoIPFixed.h index 5d6fca266..d6e9b0e41 100644 --- a/src/libcalamares/geoip/GeoIPFixed.h +++ b/src/libcalamares/geoip/GeoIPFixed.h @@ -1,22 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. + * */ #ifndef GEOIP_GEOIPFIXED_H diff --git a/src/libcalamares/geoip/GeoIPJSON.cpp b/src/libcalamares/geoip/GeoIPJSON.cpp index 6522ca085..9869d7a25 100644 --- a/src/libcalamares/geoip/GeoIPJSON.cpp +++ b/src/libcalamares/geoip/GeoIPJSON.cpp @@ -1,23 +1,10 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/geoip/GeoIPJSON.h b/src/libcalamares/geoip/GeoIPJSON.h index 246556c74..e9be14102 100644 --- a/src/libcalamares/geoip/GeoIPJSON.h +++ b/src/libcalamares/geoip/GeoIPJSON.h @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/geoip/GeoIPTests.cpp b/src/libcalamares/geoip/GeoIPTests.cpp index 9650cfe2d..6af857b36 100644 --- a/src/libcalamares/geoip/GeoIPTests.cpp +++ b/src/libcalamares/geoip/GeoIPTests.cpp @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2018 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/geoip/GeoIPTests.h b/src/libcalamares/geoip/GeoIPTests.h index 746a83eca..4d36edbb0 100644 --- a/src/libcalamares/geoip/GeoIPTests.h +++ b/src/libcalamares/geoip/GeoIPTests.h @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2018 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/geoip/GeoIPXML.cpp b/src/libcalamares/geoip/GeoIPXML.cpp index 125614032..7f2c30090 100644 --- a/src/libcalamares/geoip/GeoIPXML.cpp +++ b/src/libcalamares/geoip/GeoIPXML.cpp @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2018 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/geoip/GeoIPXML.h b/src/libcalamares/geoip/GeoIPXML.h index d686928db..fb3167b24 100644 --- a/src/libcalamares/geoip/GeoIPXML.h +++ b/src/libcalamares/geoip/GeoIPXML.h @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/geoip/Handler.cpp b/src/libcalamares/geoip/Handler.cpp index c76b86492..6825fa5fe 100644 --- a/src/libcalamares/geoip/Handler.cpp +++ b/src/libcalamares/geoip/Handler.cpp @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/geoip/Handler.h b/src/libcalamares/geoip/Handler.h index a44162576..03133978c 100644 --- a/src/libcalamares/geoip/Handler.h +++ b/src/libcalamares/geoip/Handler.h @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/geoip/Interface.cpp b/src/libcalamares/geoip/Interface.cpp index 47c826e1a..8ebe65208 100644 --- a/src/libcalamares/geoip/Interface.cpp +++ b/src/libcalamares/geoip/Interface.cpp @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/geoip/Interface.h b/src/libcalamares/geoip/Interface.h index 1afcc911b..2edf62155 100644 --- a/src/libcalamares/geoip/Interface.h +++ b/src/libcalamares/geoip/Interface.h @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/geoip/test_geoip.cpp b/src/libcalamares/geoip/test_geoip.cpp index a2aff929e..0c475b9c0 100644 --- a/src/libcalamares/geoip/test_geoip.cpp +++ b/src/libcalamares/geoip/test_geoip.cpp @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2018 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/locale/CountryData_p.cpp b/src/libcalamares/locale/CountryData_p.cpp index 61b9b05a7..932a1996d 100644 --- a/src/libcalamares/locale/CountryData_p.cpp +++ b/src/libcalamares/locale/CountryData_p.cpp @@ -1,6 +1,6 @@ /* GENERATED FILE DO NOT EDIT * -* === This file is part of Calamares - === +* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 1991-2019 Unicode, Inc. * SPDX-FileCopyrightText: 2019 Adriaan de Groot diff --git a/src/libcalamares/locale/Label.cpp b/src/libcalamares/locale/Label.cpp index 9b16bc757..b4ec8180c 100644 --- a/src/libcalamares/locale/Label.cpp +++ b/src/libcalamares/locale/Label.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/Label.h b/src/libcalamares/locale/Label.h index f52e401e3..58b2a3773 100644 --- a/src/libcalamares/locale/Label.h +++ b/src/libcalamares/locale/Label.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/LabelModel.cpp b/src/libcalamares/locale/LabelModel.cpp index 26adacfb8..9a9be9905 100644 --- a/src/libcalamares/locale/LabelModel.cpp +++ b/src/libcalamares/locale/LabelModel.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Camilo Higuita * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/LabelModel.h b/src/libcalamares/locale/LabelModel.h index 36596c6c4..8648dc71c 100644 --- a/src/libcalamares/locale/LabelModel.h +++ b/src/libcalamares/locale/LabelModel.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Camilo Higuita * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/Lookup.cpp b/src/libcalamares/locale/Lookup.cpp index b4ebe8f67..f792f08ed 100644 --- a/src/libcalamares/locale/Lookup.cpp +++ b/src/libcalamares/locale/Lookup.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/Lookup.h b/src/libcalamares/locale/Lookup.h index 4eae7c6b6..4095fd097 100644 --- a/src/libcalamares/locale/Lookup.h +++ b/src/libcalamares/locale/Lookup.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/Tests.cpp b/src/libcalamares/locale/Tests.cpp index 6414e2ebf..6e0140e79 100644 --- a/src/libcalamares/locale/Tests.cpp +++ b/src/libcalamares/locale/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index 7535bbc5c..c33705682 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/TimeZone.h b/src/libcalamares/locale/TimeZone.h index e14f33e36..8c16517c7 100644 --- a/src/libcalamares/locale/TimeZone.h +++ b/src/libcalamares/locale/TimeZone.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/TranslatableConfiguration.cpp b/src/libcalamares/locale/TranslatableConfiguration.cpp index 618ecfa4f..1f0811c9d 100644 --- a/src/libcalamares/locale/TranslatableConfiguration.cpp +++ b/src/libcalamares/locale/TranslatableConfiguration.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/TranslatableConfiguration.h b/src/libcalamares/locale/TranslatableConfiguration.h index a47f70eee..c45c8f523 100644 --- a/src/libcalamares/locale/TranslatableConfiguration.h +++ b/src/libcalamares/locale/TranslatableConfiguration.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/locale/TranslatableString.cpp b/src/libcalamares/locale/TranslatableString.cpp index 9200c8d65..8f42a4e41 100644 --- a/src/libcalamares/locale/TranslatableString.cpp +++ b/src/libcalamares/locale/TranslatableString.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ #include "TranslatableString.h" diff --git a/src/libcalamares/locale/TranslatableString.h b/src/libcalamares/locale/TranslatableString.h index 8347488f1..663f6a2c2 100644 --- a/src/libcalamares/locale/TranslatableString.h +++ b/src/libcalamares/locale/TranslatableString.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ #ifndef LOCALE_TRANSLATABLESTRING_H diff --git a/src/libcalamares/locale/cldr-extractor.py b/src/libcalamares/locale/cldr-extractor.py index 0291abf7d..7aff85be1 100644 --- a/src/libcalamares/locale/cldr-extractor.py +++ b/src/libcalamares/locale/cldr-extractor.py @@ -1,6 +1,6 @@ #! /usr/bin/env python3 # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause @@ -186,7 +186,7 @@ def read_subtags_file(): cpp_header_comment = """/* GENERATED FILE DO NOT EDIT * -* === This file is part of Calamares - === +* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 1991-2019 Unicode, Inc. * SPDX-FileCopyrightText: 2019 Adriaan de Groot diff --git a/src/libcalamares/locale/zone-extractor.py b/src/libcalamares/locale/zone-extractor.py index aa8063522..b3d9e196d 100644 --- a/src/libcalamares/locale/zone-extractor.py +++ b/src/libcalamares/locale/zone-extractor.py @@ -1,6 +1,6 @@ #! /usr/bin/env python3 # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause @@ -44,7 +44,7 @@ def write_set(file, label, set): cpp_header_comment = """/* GENERATED FILE DO NOT EDIT * -* === This file is part of Calamares - === +* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2009 Arthur David Olson * SPDX-FileCopyrightText: 2019 Adriaan de Groot diff --git a/src/libcalamares/modulesystem/Actions.h b/src/libcalamares/modulesystem/Actions.h index 4376733a1..f4bbe7e09 100644 --- a/src/libcalamares/modulesystem/Actions.h +++ b/src/libcalamares/modulesystem/Actions.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/modulesystem/Descriptor.cpp b/src/libcalamares/modulesystem/Descriptor.cpp index 9b3e48b6e..71b50d867 100644 --- a/src/libcalamares/modulesystem/Descriptor.cpp +++ b/src/libcalamares/modulesystem/Descriptor.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/libcalamares/modulesystem/Descriptor.h b/src/libcalamares/modulesystem/Descriptor.h index a94c0574d..614d5f15a 100644 --- a/src/libcalamares/modulesystem/Descriptor.h +++ b/src/libcalamares/modulesystem/Descriptor.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/modulesystem/InstanceKey.cpp b/src/libcalamares/modulesystem/InstanceKey.cpp index 982b5f532..948716f69 100644 --- a/src/libcalamares/modulesystem/InstanceKey.cpp +++ b/src/libcalamares/modulesystem/InstanceKey.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ #include "InstanceKey.h" diff --git a/src/libcalamares/modulesystem/InstanceKey.h b/src/libcalamares/modulesystem/InstanceKey.h index 074743bf3..e85aa18a4 100644 --- a/src/libcalamares/modulesystem/InstanceKey.h +++ b/src/libcalamares/modulesystem/InstanceKey.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ #ifndef MODULESYSTEM_INSTANCEKEY_H diff --git a/src/libcalamares/modulesystem/Module.cpp b/src/libcalamares/modulesystem/Module.cpp index 18c33bde8..ff0b20f78 100644 --- a/src/libcalamares/modulesystem/Module.cpp +++ b/src/libcalamares/modulesystem/Module.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/modulesystem/Module.h b/src/libcalamares/modulesystem/Module.h index e9719d756..88632cbf5 100644 --- a/src/libcalamares/modulesystem/Module.h +++ b/src/libcalamares/modulesystem/Module.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/modulesystem/Requirement.h b/src/libcalamares/modulesystem/Requirement.h index 02e0a009a..dc9fe1d77 100644 --- a/src/libcalamares/modulesystem/Requirement.h +++ b/src/libcalamares/modulesystem/Requirement.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ #ifndef CALAMARES_REQUIREMENT_H diff --git a/src/libcalamares/modulesystem/RequirementsChecker.cpp b/src/libcalamares/modulesystem/RequirementsChecker.cpp index 3256c460d..a12a4f681 100644 --- a/src/libcalamares/modulesystem/RequirementsChecker.cpp +++ b/src/libcalamares/modulesystem/RequirementsChecker.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/modulesystem/RequirementsChecker.h b/src/libcalamares/modulesystem/RequirementsChecker.h index 523bc2bc7..3577b5397 100644 --- a/src/libcalamares/modulesystem/RequirementsChecker.h +++ b/src/libcalamares/modulesystem/RequirementsChecker.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ #ifndef CALAMARES_REQUIREMENTSCHECKER_H diff --git a/src/libcalamares/modulesystem/RequirementsModel.cpp b/src/libcalamares/modulesystem/RequirementsModel.cpp index 2ff184f3b..5fd886864 100644 --- a/src/libcalamares/modulesystem/RequirementsModel.cpp +++ b/src/libcalamares/modulesystem/RequirementsModel.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/modulesystem/RequirementsModel.h b/src/libcalamares/modulesystem/RequirementsModel.h index 904e0b84e..5f3e13cbb 100644 --- a/src/libcalamares/modulesystem/RequirementsModel.h +++ b/src/libcalamares/modulesystem/RequirementsModel.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/modulesystem/Tests.cpp b/src/libcalamares/modulesystem/Tests.cpp index 2fcd5353d..78d3b5077 100644 --- a/src/libcalamares/modulesystem/Tests.cpp +++ b/src/libcalamares/modulesystem/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/network/Manager.cpp b/src/libcalamares/network/Manager.cpp index 9d7534e99..ce7f59571 100644 --- a/src/libcalamares/network/Manager.cpp +++ b/src/libcalamares/network/Manager.cpp @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/network/Manager.h b/src/libcalamares/network/Manager.h index 8673d340b..b3a1e23e7 100644 --- a/src/libcalamares/network/Manager.h +++ b/src/libcalamares/network/Manager.h @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/network/Tests.cpp b/src/libcalamares/network/Tests.cpp index 6841a3061..d42a74115 100644 --- a/src/libcalamares/network/Tests.cpp +++ b/src/libcalamares/network/Tests.cpp @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/network/Tests.h b/src/libcalamares/network/Tests.h index 2d785672e..6000e227a 100644 --- a/src/libcalamares/network/Tests.h +++ b/src/libcalamares/network/Tests.h @@ -1,22 +1,9 @@ -/* === This file is part of Calamares - === - * +/* === This file is part of Calamares - === + * * SPDX-FileCopyrightText: 2019 Adriaan de Groot - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - * * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE + * + * Calamares is Free Software: see the License-Identifier above. * */ diff --git a/src/libcalamares/partition/FileSystem.cpp b/src/libcalamares/partition/FileSystem.cpp index ee4a9f5b1..ad4df31ed 100644 --- a/src/libcalamares/partition/FileSystem.cpp +++ b/src/libcalamares/partition/FileSystem.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/FileSystem.h b/src/libcalamares/partition/FileSystem.h index 03f6ff3bc..6696f0df9 100644 --- a/src/libcalamares/partition/FileSystem.h +++ b/src/libcalamares/partition/FileSystem.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/KPMManager.cpp b/src/libcalamares/partition/KPMManager.cpp index 1f3c5b5fc..6c49f8102 100644 --- a/src/libcalamares/partition/KPMManager.cpp +++ b/src/libcalamares/partition/KPMManager.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/KPMManager.h b/src/libcalamares/partition/KPMManager.h index 2c73bfed3..871deb866 100644 --- a/src/libcalamares/partition/KPMManager.h +++ b/src/libcalamares/partition/KPMManager.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/KPMTests.cpp b/src/libcalamares/partition/KPMTests.cpp index d702c8a01..3834b7913 100644 --- a/src/libcalamares/partition/KPMTests.cpp +++ b/src/libcalamares/partition/KPMTests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/Mount.cpp b/src/libcalamares/partition/Mount.cpp index a110f2882..0fd204df4 100644 --- a/src/libcalamares/partition/Mount.cpp +++ b/src/libcalamares/partition/Mount.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/Mount.h b/src/libcalamares/partition/Mount.h index a1a0dea65..6a2ef9f8b 100644 --- a/src/libcalamares/partition/Mount.h +++ b/src/libcalamares/partition/Mount.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/PartitionIterator.cpp b/src/libcalamares/partition/PartitionIterator.cpp index 6e030346d..7c68e6170 100644 --- a/src/libcalamares/partition/PartitionIterator.cpp +++ b/src/libcalamares/partition/PartitionIterator.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/PartitionIterator.h b/src/libcalamares/partition/PartitionIterator.h index 4e3d4362d..b6207f943 100644 --- a/src/libcalamares/partition/PartitionIterator.h +++ b/src/libcalamares/partition/PartitionIterator.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/PartitionQuery.cpp b/src/libcalamares/partition/PartitionQuery.cpp index 8a2039b61..beba6b9bc 100644 --- a/src/libcalamares/partition/PartitionQuery.cpp +++ b/src/libcalamares/partition/PartitionQuery.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/PartitionQuery.h b/src/libcalamares/partition/PartitionQuery.h index ac241a259..817966d35 100644 --- a/src/libcalamares/partition/PartitionQuery.h +++ b/src/libcalamares/partition/PartitionQuery.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/PartitionSize.cpp b/src/libcalamares/partition/PartitionSize.cpp index 38e0366c0..d09cc6064 100644 --- a/src/libcalamares/partition/PartitionSize.cpp +++ b/src/libcalamares/partition/PartitionSize.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/PartitionSize.h b/src/libcalamares/partition/PartitionSize.h index 35c6cdb8d..b4808e36e 100644 --- a/src/libcalamares/partition/PartitionSize.h +++ b/src/libcalamares/partition/PartitionSize.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/Sync.cpp b/src/libcalamares/partition/Sync.cpp index fb7b31788..bcdf0cd7f 100644 --- a/src/libcalamares/partition/Sync.cpp +++ b/src/libcalamares/partition/Sync.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/Sync.h b/src/libcalamares/partition/Sync.h index bb1938c8b..8bb516214 100644 --- a/src/libcalamares/partition/Sync.h +++ b/src/libcalamares/partition/Sync.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/Tests.cpp b/src/libcalamares/partition/Tests.cpp index d69e80fc1..cd2922ee2 100644 --- a/src/libcalamares/partition/Tests.cpp +++ b/src/libcalamares/partition/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/partition/Tests.h b/src/libcalamares/partition/Tests.h index 31983c2f6..0d6f77a76 100644 --- a/src/libcalamares/partition/Tests.h +++ b/src/libcalamares/partition/Tests.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/BoostPython.h b/src/libcalamares/utils/BoostPython.h index 055ad590f..f39abe7cf 100644 --- a/src/libcalamares/utils/BoostPython.h +++ b/src/libcalamares/utils/BoostPython.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/CalamaresUtilsSystem.cpp b/src/libcalamares/utils/CalamaresUtilsSystem.cpp index 324f2cba1..ff5590506 100644 --- a/src/libcalamares/utils/CalamaresUtilsSystem.cpp +++ b/src/libcalamares/utils/CalamaresUtilsSystem.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/CalamaresUtilsSystem.h b/src/libcalamares/utils/CalamaresUtilsSystem.h index 63cacca96..61aebc58d 100644 --- a/src/libcalamares/utils/CalamaresUtilsSystem.h +++ b/src/libcalamares/utils/CalamaresUtilsSystem.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ #ifndef UTILS_CALAMARESUTILSSYSTEM_H diff --git a/src/libcalamares/utils/CommandList.cpp b/src/libcalamares/utils/CommandList.cpp index 2a23d51b0..4652dcc5a 100644 --- a/src/libcalamares/utils/CommandList.cpp +++ b/src/libcalamares/utils/CommandList.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/CommandList.h b/src/libcalamares/utils/CommandList.h index 8eb4dfdab..432020a96 100644 --- a/src/libcalamares/utils/CommandList.h +++ b/src/libcalamares/utils/CommandList.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Dirs.cpp b/src/libcalamares/utils/Dirs.cpp index 2e0eec4d5..f333d6e64 100644 --- a/src/libcalamares/utils/Dirs.cpp +++ b/src/libcalamares/utils/Dirs.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot @@ -9,18 +9,8 @@ * SPDX-FileCopyrightText: 2010-2011 Leo Franchi * SPDX-FileCopyrightText: 2010-2012 Jeff Mitchell * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Dirs.h b/src/libcalamares/utils/Dirs.h index 8a321e4dc..445cbe1f1 100644 --- a/src/libcalamares/utils/Dirs.h +++ b/src/libcalamares/utils/Dirs.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot @@ -9,18 +9,8 @@ * SPDX-FileCopyrightText: 2010-2011 Leo Franchi * SPDX-FileCopyrightText: 2010-2012 Jeff Mitchell * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Entropy.cpp b/src/libcalamares/utils/Entropy.cpp index d574da70a..d28230a85 100644 --- a/src/libcalamares/utils/Entropy.cpp +++ b/src/libcalamares/utils/Entropy.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Entropy.h b/src/libcalamares/utils/Entropy.h index 38d1dae8a..1ca40a68f 100644 --- a/src/libcalamares/utils/Entropy.h +++ b/src/libcalamares/utils/Entropy.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp index d132a2e3e..0a7dcefd0 100644 --- a/src/libcalamares/utils/Logger.cpp +++ b/src/libcalamares/utils/Logger.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser * SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -6,18 +6,8 @@ * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Logger.h b/src/libcalamares/utils/Logger.h index 990f35606..58603c82d 100644 --- a/src/libcalamares/utils/Logger.h +++ b/src/libcalamares/utils/Logger.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2010-2011 Christian Muehlhaeuser * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/NamedEnum.h b/src/libcalamares/utils/NamedEnum.h index d962b3c76..cf56a26f2 100644 --- a/src/libcalamares/utils/NamedEnum.h +++ b/src/libcalamares/utils/NamedEnum.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/NamedSuffix.h b/src/libcalamares/utils/NamedSuffix.h index b717e0471..84094e90c 100644 --- a/src/libcalamares/utils/NamedSuffix.h +++ b/src/libcalamares/utils/NamedSuffix.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Permissions.cpp b/src/libcalamares/utils/Permissions.cpp index a73ffe77d..777b3c463 100644 --- a/src/libcalamares/utils/Permissions.cpp +++ b/src/libcalamares/utils/Permissions.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Scott Harvey * SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/libcalamares/utils/Permissions.h b/src/libcalamares/utils/Permissions.h index 9e0357b57..11d1d4bab 100644 --- a/src/libcalamares/utils/Permissions.h +++ b/src/libcalamares/utils/Permissions.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Scott Harvey * SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/libcalamares/utils/PluginFactory.cpp b/src/libcalamares/utils/PluginFactory.cpp index 74c94a878..9f26a8a1c 100644 --- a/src/libcalamares/utils/PluginFactory.cpp +++ b/src/libcalamares/utils/PluginFactory.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/PluginFactory.h b/src/libcalamares/utils/PluginFactory.h index 594363fd9..891e3c1cd 100644 --- a/src/libcalamares/utils/PluginFactory.h +++ b/src/libcalamares/utils/PluginFactory.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot @@ -8,18 +8,8 @@ * SPDX-FileCopyrightText: 2007 Matthias Kretz * SPDX-FileCopyrightText: 2007 Bernhard Loos * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/RAII.h b/src/libcalamares/utils/RAII.h index 0f1f3f96e..d6f8fe94d 100644 --- a/src/libcalamares/utils/RAII.h +++ b/src/libcalamares/utils/RAII.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Retranslator.cpp b/src/libcalamares/utils/Retranslator.cpp index 149626804..a03ae9a3b 100644 --- a/src/libcalamares/utils/Retranslator.cpp +++ b/src/libcalamares/utils/Retranslator.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Retranslator.h b/src/libcalamares/utils/Retranslator.h index c88aad777..476c0b184 100644 --- a/src/libcalamares/utils/Retranslator.h +++ b/src/libcalamares/utils/Retranslator.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/String.cpp b/src/libcalamares/utils/String.cpp index 870c8ba49..34a7038e3 100644 --- a/src/libcalamares/utils/String.cpp +++ b/src/libcalamares/utils/String.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot @@ -9,18 +9,8 @@ * SPDX-FileCopyrightText: 2010-2011 Leo Franchi * SPDX-FileCopyrightText: 2010-2012 Jeff Mitchell * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/String.h b/src/libcalamares/utils/String.h index ea585188b..48bb17aac 100644 --- a/src/libcalamares/utils/String.h +++ b/src/libcalamares/utils/String.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot @@ -9,18 +9,8 @@ * SPDX-FileCopyrightText: 2010-2011 Leo Franchi * SPDX-FileCopyrightText: 2010-2012 Jeff Mitchell * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/TestPaths.cpp b/src/libcalamares/utils/TestPaths.cpp index 0a5fb9302..f00349c8f 100644 --- a/src/libcalamares/utils/TestPaths.cpp +++ b/src/libcalamares/utils/TestPaths.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Tests.cpp b/src/libcalamares/utils/Tests.cpp index 706844f70..644e03cf2 100644 --- a/src/libcalamares/utils/Tests.cpp +++ b/src/libcalamares/utils/Tests.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Traits.h b/src/libcalamares/utils/Traits.h index d957633d5..1970aa833 100644 --- a/src/libcalamares/utils/Traits.h +++ b/src/libcalamares/utils/Traits.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/UMask.cpp b/src/libcalamares/utils/UMask.cpp index 861c635e9..3dd7e84f0 100644 --- a/src/libcalamares/utils/UMask.cpp +++ b/src/libcalamares/utils/UMask.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/UMask.h b/src/libcalamares/utils/UMask.h index 451ee23b2..aea79fbc3 100644 --- a/src/libcalamares/utils/UMask.h +++ b/src/libcalamares/utils/UMask.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ #ifndef UTILS_UMASK_H diff --git a/src/libcalamares/utils/Units.h b/src/libcalamares/utils/Units.h index 49a3ff795..abccacb0d 100644 --- a/src/libcalamares/utils/Units.h +++ b/src/libcalamares/utils/Units.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Variant.cpp b/src/libcalamares/utils/Variant.cpp index a6aad74ce..a484ac8f7 100644 --- a/src/libcalamares/utils/Variant.cpp +++ b/src/libcalamares/utils/Variant.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot @@ -9,18 +9,8 @@ * SPDX-FileCopyrightText: 2010-2011 Leo Franchi * SPDX-FileCopyrightText: 2010-2012 Jeff Mitchell * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Variant.h b/src/libcalamares/utils/Variant.h index ebf3ff8b6..60ff1ff01 100644 --- a/src/libcalamares/utils/Variant.h +++ b/src/libcalamares/utils/Variant.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2013-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamares/utils/Yaml.cpp b/src/libcalamares/utils/Yaml.cpp index af73e2825..b787589c6 100644 --- a/src/libcalamares/utils/Yaml.cpp +++ b/src/libcalamares/utils/Yaml.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * * */ diff --git a/src/libcalamares/utils/Yaml.h b/src/libcalamares/utils/Yaml.h index 0f9631fa2..3922484ce 100644 --- a/src/libcalamares/utils/Yaml.h +++ b/src/libcalamares/utils/Yaml.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * * */ diff --git a/src/libcalamares/utils/moc-warnings.h b/src/libcalamares/utils/moc-warnings.h index fed12a604..2f44438c1 100644 --- a/src/libcalamares/utils/moc-warnings.h +++ b/src/libcalamares/utils/moc-warnings.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . * */ diff --git a/src/libcalamaresui/Branding.cpp b/src/libcalamaresui/Branding.cpp index c14f33b85..8145ad57c 100644 --- a/src/libcalamaresui/Branding.cpp +++ b/src/libcalamaresui/Branding.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2019 Camilo Higuita * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Branding.h" diff --git a/src/libcalamaresui/Branding.h b/src/libcalamaresui/Branding.h index 65b7d9642..b03df3acd 100644 --- a/src/libcalamaresui/Branding.h +++ b/src/libcalamaresui/Branding.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2019 Camilo Higuita * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef BRANDING_H diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 52fb838e5..f48008c2d 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index e0a206cae..efa455dea 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2019 Gabriel Craciunescu * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ViewManager.h" diff --git a/src/libcalamaresui/ViewManager.h b/src/libcalamaresui/ViewManager.h index 208f744a4..947503eaa 100644 --- a/src/libcalamaresui/ViewManager.h +++ b/src/libcalamaresui/ViewManager.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef VIEWMANAGER_H diff --git a/src/libcalamaresui/modulesystem/CppJobModule.cpp b/src/libcalamaresui/modulesystem/CppJobModule.cpp index 453764b13..c2110061c 100644 --- a/src/libcalamaresui/modulesystem/CppJobModule.cpp +++ b/src/libcalamaresui/modulesystem/CppJobModule.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2016 Kevin Kofler * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CppJobModule.h" diff --git a/src/libcalamaresui/modulesystem/CppJobModule.h b/src/libcalamaresui/modulesystem/CppJobModule.h index 9c6e7b823..288f674f4 100644 --- a/src/libcalamaresui/modulesystem/CppJobModule.h +++ b/src/libcalamaresui/modulesystem/CppJobModule.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2016 Kevin Kofler * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CALAMARES_CPPJOBMODULE_H diff --git a/src/libcalamaresui/modulesystem/ModuleFactory.cpp b/src/libcalamaresui/modulesystem/ModuleFactory.cpp index 93ffb745b..7d4dd1960 100644 --- a/src/libcalamaresui/modulesystem/ModuleFactory.cpp +++ b/src/libcalamaresui/modulesystem/ModuleFactory.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ModuleFactory.h" diff --git a/src/libcalamaresui/modulesystem/ModuleFactory.h b/src/libcalamaresui/modulesystem/ModuleFactory.h index 6d8f12a19..170e27e8e 100644 --- a/src/libcalamaresui/modulesystem/ModuleFactory.h +++ b/src/libcalamaresui/modulesystem/ModuleFactory.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CALAMARES_MODULEFACTORY_H diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index 283ea8b5f..9e84cf646 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ModuleManager.h" diff --git a/src/libcalamaresui/modulesystem/ModuleManager.h b/src/libcalamaresui/modulesystem/ModuleManager.h index abe0dce00..d2beedf2e 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.h +++ b/src/libcalamaresui/modulesystem/ModuleManager.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef MODULELOADER_H diff --git a/src/libcalamaresui/modulesystem/ProcessJobModule.cpp b/src/libcalamaresui/modulesystem/ProcessJobModule.cpp index f3a6d6e98..0414048ca 100644 --- a/src/libcalamaresui/modulesystem/ProcessJobModule.cpp +++ b/src/libcalamaresui/modulesystem/ProcessJobModule.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ProcessJobModule.h" diff --git a/src/libcalamaresui/modulesystem/ProcessJobModule.h b/src/libcalamaresui/modulesystem/ProcessJobModule.h index e3780ed0e..0e00f5545 100644 --- a/src/libcalamaresui/modulesystem/ProcessJobModule.h +++ b/src/libcalamaresui/modulesystem/ProcessJobModule.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CALAMARES_PROCESSJOBMODULE_H diff --git a/src/libcalamaresui/modulesystem/PythonJobModule.cpp b/src/libcalamaresui/modulesystem/PythonJobModule.cpp index d3c47fffb..67223b655 100644 --- a/src/libcalamaresui/modulesystem/PythonJobModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonJobModule.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PythonJobModule.h" diff --git a/src/libcalamaresui/modulesystem/PythonJobModule.h b/src/libcalamaresui/modulesystem/PythonJobModule.h index 68963802c..37634d6be 100644 --- a/src/libcalamaresui/modulesystem/PythonJobModule.h +++ b/src/libcalamaresui/modulesystem/PythonJobModule.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CALAMARES_PYTHONJOBMODULE_H diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp index 3e1f2cce3..638fdfc79 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-FileCopyrightText: 2018 Raul Rodrigo Segura * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PythonQtViewModule.h" diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.h b/src/libcalamaresui/modulesystem/PythonQtViewModule.h index ad8e0989a..8267dd2cb 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.h +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CALAMARES_PYTHONQTVIEWMODULE_H diff --git a/src/libcalamaresui/modulesystem/ViewModule.cpp b/src/libcalamaresui/modulesystem/ViewModule.cpp index 1674d9fab..32c05bdba 100644 --- a/src/libcalamaresui/modulesystem/ViewModule.cpp +++ b/src/libcalamaresui/modulesystem/ViewModule.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ViewModule.h" diff --git a/src/libcalamaresui/modulesystem/ViewModule.h b/src/libcalamaresui/modulesystem/ViewModule.h index 370987b15..8e5eb44b4 100644 --- a/src/libcalamaresui/modulesystem/ViewModule.h +++ b/src/libcalamaresui/modulesystem/ViewModule.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CALAMARES_VIEWMODULE_H diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index 57f04cd95..e16763a70 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CalamaresUtilsGui.h" diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h index a98579cd6..aa7aff79b 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.h +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CALAMARESUTILSGUI_H diff --git a/src/libcalamaresui/utils/ImageRegistry.cpp b/src/libcalamaresui/utils/ImageRegistry.cpp index 627cf6a8e..3fdecccef 100644 --- a/src/libcalamaresui/utils/ImageRegistry.cpp +++ b/src/libcalamaresui/utils/ImageRegistry.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2012 Christian Muehlhaeuser * SPDX-FileCopyrightText: 2019, Adriaan de Groot diff --git a/src/libcalamaresui/utils/ImageRegistry.h b/src/libcalamaresui/utils/ImageRegistry.h index 706306c23..80bc25ff6 100644 --- a/src/libcalamaresui/utils/ImageRegistry.h +++ b/src/libcalamaresui/utils/ImageRegistry.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2012 Christian Muehlhaeuser * SPDX-FileCopyrightText: 2019 Adriaan de Groot diff --git a/src/libcalamaresui/utils/Paste.cpp b/src/libcalamaresui/utils/Paste.cpp index 16ec7a74f..8099d9024 100644 --- a/src/libcalamaresui/utils/Paste.cpp +++ b/src/libcalamaresui/utils/Paste.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Bill Auger * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Paste.h" diff --git a/src/libcalamaresui/utils/Paste.h b/src/libcalamaresui/utils/Paste.h index 0886a9a7f..f802dfe2e 100644 --- a/src/libcalamaresui/utils/Paste.h +++ b/src/libcalamaresui/utils/Paste.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Bill Auger * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef UTILS_PASTE_H diff --git a/src/libcalamaresui/utils/PythonQtUtils.cpp b/src/libcalamaresui/utils/PythonQtUtils.cpp index 6528ee4a8..bc4e034f0 100644 --- a/src/libcalamaresui/utils/PythonQtUtils.cpp +++ b/src/libcalamaresui/utils/PythonQtUtils.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PythonQtUtils.h" diff --git a/src/libcalamaresui/utils/PythonQtUtils.h b/src/libcalamaresui/utils/PythonQtUtils.h index f06a6d4e4..49f3bb1c4 100644 --- a/src/libcalamaresui/utils/PythonQtUtils.h +++ b/src/libcalamaresui/utils/PythonQtUtils.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PYTHONQTUTILS_H diff --git a/src/libcalamaresui/utils/Qml.cpp b/src/libcalamaresui/utils/Qml.cpp index 602e11326..2cb13c803 100644 --- a/src/libcalamaresui/utils/Qml.cpp +++ b/src/libcalamaresui/utils/Qml.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Qml.h" diff --git a/src/libcalamaresui/utils/Qml.h b/src/libcalamaresui/utils/Qml.h index ea5d0aa8f..2d6655e9e 100644 --- a/src/libcalamaresui/utils/Qml.h +++ b/src/libcalamaresui/utils/Qml.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef UTILS_QML_H diff --git a/src/libcalamaresui/viewpages/BlankViewStep.cpp b/src/libcalamaresui/viewpages/BlankViewStep.cpp index 16925a4a1..1fbeaeef0 100644 --- a/src/libcalamaresui/viewpages/BlankViewStep.cpp +++ b/src/libcalamaresui/viewpages/BlankViewStep.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "BlankViewStep.h" diff --git a/src/libcalamaresui/viewpages/BlankViewStep.h b/src/libcalamaresui/viewpages/BlankViewStep.h index e10cce872..793241647 100644 --- a/src/libcalamaresui/viewpages/BlankViewStep.h +++ b/src/libcalamaresui/viewpages/BlankViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef BLANKVIEWSTEP_H diff --git a/src/libcalamaresui/viewpages/ExecutionViewStep.cpp b/src/libcalamaresui/viewpages/ExecutionViewStep.cpp index de6f12a21..fe90e1ec3 100644 --- a/src/libcalamaresui/viewpages/ExecutionViewStep.cpp +++ b/src/libcalamaresui/viewpages/ExecutionViewStep.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ExecutionViewStep.h" diff --git a/src/libcalamaresui/viewpages/ExecutionViewStep.h b/src/libcalamaresui/viewpages/ExecutionViewStep.h index f2fea641b..26618c77f 100644 --- a/src/libcalamaresui/viewpages/ExecutionViewStep.h +++ b/src/libcalamaresui/viewpages/ExecutionViewStep.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef EXECUTIONVIEWSTEP_H diff --git a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.cpp b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.cpp index 835e35361..0d667a097 100644 --- a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.cpp +++ b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PythonQtGlobalStorageWrapper.h" diff --git a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h index b18fe8fd3..2a8f6af99 100644 --- a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h +++ b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PYTHONQTGLOBALSTORAGEWRAPPER_H diff --git a/src/libcalamaresui/viewpages/PythonQtJob.cpp b/src/libcalamaresui/viewpages/PythonQtJob.cpp index 112e11cc5..d41c70f1f 100644 --- a/src/libcalamaresui/viewpages/PythonQtJob.cpp +++ b/src/libcalamaresui/viewpages/PythonQtJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PythonQtJob.h" diff --git a/src/libcalamaresui/viewpages/PythonQtJob.h b/src/libcalamaresui/viewpages/PythonQtJob.h index 847dcd44c..5d591c74e 100644 --- a/src/libcalamaresui/viewpages/PythonQtJob.h +++ b/src/libcalamaresui/viewpages/PythonQtJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PYTHONQTJOB_H diff --git a/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.cpp b/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.cpp index a55e0db05..4cd72f8c0 100644 --- a/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.cpp +++ b/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PythonQtUtilsWrapper.h" diff --git a/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h b/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h index 96243f707..e7c8c0660 100644 --- a/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h +++ b/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PYTHONQTUTILSWRAPPER_H diff --git a/src/libcalamaresui/viewpages/PythonQtViewStep.cpp b/src/libcalamaresui/viewpages/PythonQtViewStep.cpp index cc849e0ea..29c65472f 100644 --- a/src/libcalamaresui/viewpages/PythonQtViewStep.cpp +++ b/src/libcalamaresui/viewpages/PythonQtViewStep.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PythonQtViewStep.h" diff --git a/src/libcalamaresui/viewpages/PythonQtViewStep.h b/src/libcalamaresui/viewpages/PythonQtViewStep.h index c19494013..b23a540b9 100644 --- a/src/libcalamaresui/viewpages/PythonQtViewStep.h +++ b/src/libcalamaresui/viewpages/PythonQtViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PYTHONQTVIEWSTEP_H diff --git a/src/libcalamaresui/viewpages/QmlViewStep.cpp b/src/libcalamaresui/viewpages/QmlViewStep.cpp index 650a746e2..4ea20ba32 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.cpp +++ b/src/libcalamaresui/viewpages/QmlViewStep.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "QmlViewStep.h" diff --git a/src/libcalamaresui/viewpages/QmlViewStep.h b/src/libcalamaresui/viewpages/QmlViewStep.h index c81f90567..7f04bea81 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.h +++ b/src/libcalamaresui/viewpages/QmlViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef QMLVIEWSTEP_H diff --git a/src/libcalamaresui/viewpages/Slideshow.cpp b/src/libcalamaresui/viewpages/Slideshow.cpp index ddd8aedb6..13f0a3e51 100644 --- a/src/libcalamaresui/viewpages/Slideshow.cpp +++ b/src/libcalamaresui/viewpages/Slideshow.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Slideshow.h" diff --git a/src/libcalamaresui/viewpages/Slideshow.h b/src/libcalamaresui/viewpages/Slideshow.h index e3b09a6d1..732734755 100644 --- a/src/libcalamaresui/viewpages/Slideshow.h +++ b/src/libcalamaresui/viewpages/Slideshow.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LIBCALAMARESUI_SLIDESHOW_H diff --git a/src/libcalamaresui/viewpages/ViewStep.cpp b/src/libcalamaresui/viewpages/ViewStep.cpp index 1d9fcf1fb..e76dc915b 100644 --- a/src/libcalamaresui/viewpages/ViewStep.cpp +++ b/src/libcalamaresui/viewpages/ViewStep.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ViewStep.h" diff --git a/src/libcalamaresui/viewpages/ViewStep.h b/src/libcalamaresui/viewpages/ViewStep.h index 6d6b9b2c5..156975fc5 100644 --- a/src/libcalamaresui/viewpages/ViewStep.h +++ b/src/libcalamaresui/viewpages/ViewStep.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef VIEWSTEP_H diff --git a/src/libcalamaresui/widgets/ClickableLabel.cpp b/src/libcalamaresui/widgets/ClickableLabel.cpp index ec5c18a29..4d2885813 100644 --- a/src/libcalamaresui/widgets/ClickableLabel.cpp +++ b/src/libcalamaresui/widgets/ClickableLabel.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ClickableLabel.h" diff --git a/src/libcalamaresui/widgets/ClickableLabel.h b/src/libcalamaresui/widgets/ClickableLabel.h index 43da49276..83ddb3d86 100644 --- a/src/libcalamaresui/widgets/ClickableLabel.h +++ b/src/libcalamaresui/widgets/ClickableLabel.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LIBCALAMARESUI_CLICKABLELABEL_H diff --git a/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp b/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp index 6e9a64d10..1d496c27f 100644 --- a/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp +++ b/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "FixedAspectRatioLabel.h" diff --git a/src/libcalamaresui/widgets/FixedAspectRatioLabel.h b/src/libcalamaresui/widgets/FixedAspectRatioLabel.h index dd85f98ef..ded7ba602 100644 --- a/src/libcalamaresui/widgets/FixedAspectRatioLabel.h +++ b/src/libcalamaresui/widgets/FixedAspectRatioLabel.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef FIXEDASPECTRATIOLABEL_H diff --git a/src/libcalamaresui/widgets/PrettyRadioButton.cpp b/src/libcalamaresui/widgets/PrettyRadioButton.cpp index 091be266b..b79f93a25 100644 --- a/src/libcalamaresui/widgets/PrettyRadioButton.cpp +++ b/src/libcalamaresui/widgets/PrettyRadioButton.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PrettyRadioButton.h" diff --git a/src/libcalamaresui/widgets/PrettyRadioButton.h b/src/libcalamaresui/widgets/PrettyRadioButton.h index 8b0a3da7d..67ef49ae6 100644 --- a/src/libcalamaresui/widgets/PrettyRadioButton.h +++ b/src/libcalamaresui/widgets/PrettyRadioButton.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LIBCALAMARESUI_PRETTYRADIOBUTTON_H diff --git a/src/libcalamaresui/widgets/WaitingWidget.cpp b/src/libcalamaresui/widgets/WaitingWidget.cpp index 11b1a10f7..aef5aecf5 100644 --- a/src/libcalamaresui/widgets/WaitingWidget.cpp +++ b/src/libcalamaresui/widgets/WaitingWidget.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "WaitingWidget.h" diff --git a/src/libcalamaresui/widgets/WaitingWidget.h b/src/libcalamaresui/widgets/WaitingWidget.h index be375c453..850b81ca9 100644 --- a/src/libcalamaresui/widgets/WaitingWidget.h +++ b/src/libcalamaresui/widgets/WaitingWidget.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef WAITINGWIDGET_H diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index da9e1c574..8836c74ea 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/bootloader/main.py b/src/modules/bootloader/main.py index bfb695909..ec9a6f2e6 100644 --- a/src/modules/bootloader/main.py +++ b/src/modules/bootloader/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Aurélien Gâteau # SPDX-FileCopyrightText: 2014 Anke Boersma @@ -16,18 +16,8 @@ # SPDX-FileCopyrightText: 2017 Ben Green # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import os import shutil diff --git a/src/modules/contextualprocess/Binding.h b/src/modules/contextualprocess/Binding.h index 5b6f09087..fc9f65557 100644 --- a/src/modules/contextualprocess/Binding.h +++ b/src/modules/contextualprocess/Binding.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /* This file isn't public API, but is used to express the API that diff --git a/src/modules/contextualprocess/CMakeLists.txt b/src/modules/contextualprocess/CMakeLists.txt index 705f494b5..113b504db 100644 --- a/src/modules/contextualprocess/CMakeLists.txt +++ b/src/modules/contextualprocess/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/contextualprocess/ContextualProcessJob.cpp b/src/modules/contextualprocess/ContextualProcessJob.cpp index f970740ca..8bc011127 100644 --- a/src/modules/contextualprocess/ContextualProcessJob.cpp +++ b/src/modules/contextualprocess/ContextualProcessJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ContextualProcessJob.h" diff --git a/src/modules/contextualprocess/ContextualProcessJob.h b/src/modules/contextualprocess/ContextualProcessJob.h index e926f699d..f84afb5f1 100644 --- a/src/modules/contextualprocess/ContextualProcessJob.h +++ b/src/modules/contextualprocess/ContextualProcessJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CONTEXTUALPROCESSJOB_H diff --git a/src/modules/contextualprocess/Tests.cpp b/src/modules/contextualprocess/Tests.cpp index 97277dfce..aa51e1192 100644 --- a/src/modules/contextualprocess/Tests.cpp +++ b/src/modules/contextualprocess/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Tests.h" diff --git a/src/modules/contextualprocess/Tests.h b/src/modules/contextualprocess/Tests.h index 5b27d497d..0aed1f4a5 100644 --- a/src/modules/contextualprocess/Tests.h +++ b/src/modules/contextualprocess/Tests.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TESTS_H diff --git a/src/modules/displaymanager/main.py b/src/modules/displaymanager/main.py index 509257bb1..a803e0d7a 100644 --- a/src/modules/displaymanager/main.py +++ b/src/modules/displaymanager/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014-2018 Philip Müller # SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac @@ -12,18 +12,8 @@ # SPDX-FileCopyrightText: 2019 Dominic Hayes # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import abc import os diff --git a/src/modules/dracut/main.py b/src/modules/dracut/main.py index 2a5ba91d7..392dd8a51 100644 --- a/src/modules/dracut/main.py +++ b/src/modules/dracut/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014-2015 Philip Müller # SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -9,18 +9,8 @@ # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares from libcalamares.utils import target_env_call diff --git a/src/modules/dracutlukscfg/CMakeLists.txt b/src/modules/dracutlukscfg/CMakeLists.txt index 3620bb92c..dd9faf9d4 100644 --- a/src/modules/dracutlukscfg/CMakeLists.txt +++ b/src/modules/dracutlukscfg/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp b/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp index 18bbcae88..edd9b2948 100644 --- a/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp +++ b/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Kevin Kofler * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "DracutLuksCfgJob.h" diff --git a/src/modules/dracutlukscfg/DracutLuksCfgJob.h b/src/modules/dracutlukscfg/DracutLuksCfgJob.h index b10a8647e..eb517b21d 100644 --- a/src/modules/dracutlukscfg/DracutLuksCfgJob.h +++ b/src/modules/dracutlukscfg/DracutLuksCfgJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Kevin Kofler * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef DRACUTLUKSCFGJOB_H diff --git a/src/modules/dummycpp/CMakeLists.txt b/src/modules/dummycpp/CMakeLists.txt index 7b219744c..e199d5027 100644 --- a/src/modules/dummycpp/CMakeLists.txt +++ b/src/modules/dummycpp/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/dummycpp/DummyCppJob.cpp b/src/modules/dummycpp/DummyCppJob.cpp index b9765ac01..5b2deffd1 100644 --- a/src/modules/dummycpp/DummyCppJob.cpp +++ b/src/modules/dummycpp/DummyCppJob.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac (original dummypython code) * SPDX-FileCopyrightText: 2016 Kevin Kofler * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "DummyCppJob.h" diff --git a/src/modules/dummycpp/DummyCppJob.h b/src/modules/dummycpp/DummyCppJob.h index 1b6f0eeb5..2f267d511 100644 --- a/src/modules/dummycpp/DummyCppJob.h +++ b/src/modules/dummycpp/DummyCppJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Kevin Kofler * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef DUMMYCPPJOB_H diff --git a/src/modules/dummypython/main.py b/src/modules/dummypython/main.py index 2f21e9b77..aa748006d 100644 --- a/src/modules/dummypython/main.py +++ b/src/modules/dummypython/main.py @@ -1,25 +1,15 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-FileCopyrightText: 2017 Alf Gaida # SPDX-FileCopyrightText: 2017 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . """ === Example Python jobmodule. diff --git a/src/modules/dummypythonqt/main.py b/src/modules/dummypythonqt/main.py index c08b79fbb..e33c20e6f 100644 --- a/src/modules/dummypythonqt/main.py +++ b/src/modules/dummypythonqt/main.py @@ -1,24 +1,14 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2016-2017 Teo Mrnjavac # SPDX-FileCopyrightText: 2017 Alf Gaida # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import platform diff --git a/src/modules/finished/CMakeLists.txt b/src/modules/finished/CMakeLists.txt index 746683533..21eb1ad18 100644 --- a/src/modules/finished/CMakeLists.txt +++ b/src/modules/finished/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/finished/FinishedPage.cpp b/src/modules/finished/FinishedPage.cpp index bdcbb9a85..23f09df99 100644 --- a/src/modules/finished/FinishedPage.cpp +++ b/src/modules/finished/FinishedPage.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "FinishedPage.h" diff --git a/src/modules/finished/FinishedPage.h b/src/modules/finished/FinishedPage.h index 90ce9383a..1df022f58 100644 --- a/src/modules/finished/FinishedPage.h +++ b/src/modules/finished/FinishedPage.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef FINISHEDPAGE_H diff --git a/src/modules/finished/FinishedViewStep.cpp b/src/modules/finished/FinishedViewStep.cpp index 0ea2bbe4c..525108dc7 100644 --- a/src/modules/finished/FinishedViewStep.cpp +++ b/src/modules/finished/FinishedViewStep.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "FinishedViewStep.h" diff --git a/src/modules/finished/FinishedViewStep.h b/src/modules/finished/FinishedViewStep.h index f19304935..97d38b267 100644 --- a/src/modules/finished/FinishedViewStep.h +++ b/src/modules/finished/FinishedViewStep.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef FINISHEDVIEWSTEP_H diff --git a/src/modules/fsresizer/CMakeLists.txt b/src/modules/fsresizer/CMakeLists.txt index 8b23f90b2..7fdea1ff2 100644 --- a/src/modules/fsresizer/CMakeLists.txt +++ b/src/modules/fsresizer/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/fsresizer/ResizeFSJob.cpp b/src/modules/fsresizer/ResizeFSJob.cpp index d7003c76d..9f2b440b8 100644 --- a/src/modules/fsresizer/ResizeFSJob.cpp +++ b/src/modules/fsresizer/ResizeFSJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ResizeFSJob.h" diff --git a/src/modules/fsresizer/ResizeFSJob.h b/src/modules/fsresizer/ResizeFSJob.h index 5bc810370..5c9c961a5 100644 --- a/src/modules/fsresizer/ResizeFSJob.h +++ b/src/modules/fsresizer/ResizeFSJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef RESIZEFSJOB_H diff --git a/src/modules/fsresizer/Tests.cpp b/src/modules/fsresizer/Tests.cpp index a7be5dab8..7cd60ee9e 100644 --- a/src/modules/fsresizer/Tests.cpp +++ b/src/modules/fsresizer/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Tests.h" diff --git a/src/modules/fsresizer/Tests.h b/src/modules/fsresizer/Tests.h index 24ac0bc8a..f3d2308ec 100644 --- a/src/modules/fsresizer/Tests.h +++ b/src/modules/fsresizer/Tests.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TESTS_H diff --git a/src/modules/fstab/main.py b/src/modules/fstab/main.py index 19af12b9e..26c357945 100644 --- a/src/modules/fstab/main.py +++ b/src/modules/fstab/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Aurélien Gâteau # SPDX-FileCopyrightText: 2016 Teo Mrnjavac @@ -9,18 +9,8 @@ # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import os import re diff --git a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py index be9752402..22ef18130 100644 --- a/src/modules/grubcfg/main.py +++ b/src/modules/grubcfg/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014-2015 Philip Müller # SPDX-FileCopyrightText: 2015-2017 Teo Mrnjavac @@ -10,18 +10,8 @@ # SPDX-FileCopyrightText: 2017-2018 Gabriel Craciunescu # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares import os diff --git a/src/modules/hostinfo/CMakeLists.txt b/src/modules/hostinfo/CMakeLists.txt index 401f50168..cdf5857e6 100644 --- a/src/modules/hostinfo/CMakeLists.txt +++ b/src/modules/hostinfo/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/hostinfo/HostInfoJob.cpp b/src/modules/hostinfo/HostInfoJob.cpp index 02320c7ac..0be419978 100644 --- a/src/modules/hostinfo/HostInfoJob.cpp +++ b/src/modules/hostinfo/HostInfoJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "HostInfoJob.h" diff --git a/src/modules/hostinfo/HostInfoJob.h b/src/modules/hostinfo/HostInfoJob.h index bf519e953..d9b450ac4 100644 --- a/src/modules/hostinfo/HostInfoJob.h +++ b/src/modules/hostinfo/HostInfoJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef HOSTINFOJOB_H diff --git a/src/modules/hostinfo/Tests.cpp b/src/modules/hostinfo/Tests.cpp index 883bddf28..724340269 100644 --- a/src/modules/hostinfo/Tests.cpp +++ b/src/modules/hostinfo/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "HostInfoJob.h" diff --git a/src/modules/hwclock/main.py b/src/modules/hwclock/main.py index 7cf5790f9..be9fabf5f 100644 --- a/src/modules/hwclock/main.py +++ b/src/modules/hwclock/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014-2015 Philip Müller # SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -10,18 +10,8 @@ # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares diff --git a/src/modules/initcpio/CMakeLists.txt b/src/modules/initcpio/CMakeLists.txt index d51884edc..e8d90e7fa 100644 --- a/src/modules/initcpio/CMakeLists.txt +++ b/src/modules/initcpio/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/initcpio/InitcpioJob.cpp b/src/modules/initcpio/InitcpioJob.cpp index ae910995c..b96f3b316 100644 --- a/src/modules/initcpio/InitcpioJob.cpp +++ b/src/modules/initcpio/InitcpioJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "InitcpioJob.h" diff --git a/src/modules/initcpio/InitcpioJob.h b/src/modules/initcpio/InitcpioJob.h index ae8ff47c3..45421ea05 100644 --- a/src/modules/initcpio/InitcpioJob.h +++ b/src/modules/initcpio/InitcpioJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef INITCPIOJOB_H diff --git a/src/modules/initcpio/Tests.cpp b/src/modules/initcpio/Tests.cpp index 83b10388d..bff163b5f 100644 --- a/src/modules/initcpio/Tests.cpp +++ b/src/modules/initcpio/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Tests.h" diff --git a/src/modules/initcpio/Tests.h b/src/modules/initcpio/Tests.h index bebab408a..aac48d0c4 100644 --- a/src/modules/initcpio/Tests.h +++ b/src/modules/initcpio/Tests.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TESTS_H diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index 119fa5cf2..aef980e25 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Rohan Garg # SPDX-FileCopyrightText: 2015 2019-2020, Philip Müller @@ -9,18 +9,8 @@ # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares from libcalamares.utils import debug, target_env_call diff --git a/src/modules/initramfs/CMakeLists.txt b/src/modules/initramfs/CMakeLists.txt index 2d64cbc75..b8bcc9681 100644 --- a/src/modules/initramfs/CMakeLists.txt +++ b/src/modules/initramfs/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/initramfs/InitramfsJob.cpp b/src/modules/initramfs/InitramfsJob.cpp index 05ee4bde8..1b10a1a05 100644 --- a/src/modules/initramfs/InitramfsJob.cpp +++ b/src/modules/initramfs/InitramfsJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "InitramfsJob.h" diff --git a/src/modules/initramfs/InitramfsJob.h b/src/modules/initramfs/InitramfsJob.h index b1b3fb397..7b3a03911 100644 --- a/src/modules/initramfs/InitramfsJob.h +++ b/src/modules/initramfs/InitramfsJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef INITRAMFSJOB_H diff --git a/src/modules/initramfs/Tests.cpp b/src/modules/initramfs/Tests.cpp index 955d9b8bf..f1c9b5e24 100644 --- a/src/modules/initramfs/Tests.cpp +++ b/src/modules/initramfs/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Tests.h" diff --git a/src/modules/initramfs/Tests.h b/src/modules/initramfs/Tests.h index 11d0fd1d0..377424589 100644 --- a/src/modules/initramfs/Tests.h +++ b/src/modules/initramfs/Tests.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TESTS_H diff --git a/src/modules/initramfscfg/main.py b/src/modules/initramfscfg/main.py index e3b6d0439..974e2634d 100644 --- a/src/modules/initramfscfg/main.py +++ b/src/modules/initramfscfg/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Rohan Garg # SPDX-FileCopyrightText: 2015 Philip Müller @@ -11,18 +11,8 @@ # SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares diff --git a/src/modules/interactiveterminal/CMakeLists.txt b/src/modules/interactiveterminal/CMakeLists.txt index 05e3388e3..fea99a5dd 100644 --- a/src/modules/interactiveterminal/CMakeLists.txt +++ b/src/modules/interactiveterminal/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/interactiveterminal/InteractiveTerminalPage.cpp b/src/modules/interactiveterminal/InteractiveTerminalPage.cpp index 9d5f76724..ea4e3b42e 100644 --- a/src/modules/interactiveterminal/InteractiveTerminalPage.cpp +++ b/src/modules/interactiveterminal/InteractiveTerminalPage.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "InteractiveTerminalPage.h" diff --git a/src/modules/interactiveterminal/InteractiveTerminalPage.h b/src/modules/interactiveterminal/InteractiveTerminalPage.h index 20ab0d651..86ba075ad 100644 --- a/src/modules/interactiveterminal/InteractiveTerminalPage.h +++ b/src/modules/interactiveterminal/InteractiveTerminalPage.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef INTERACTIVETERMINALPAGE_H diff --git a/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp b/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp index 45019cf4a..b01321c18 100644 --- a/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp +++ b/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "InteractiveTerminalViewStep.h" diff --git a/src/modules/interactiveterminal/InteractiveTerminalViewStep.h b/src/modules/interactiveterminal/InteractiveTerminalViewStep.h index d91fc07cc..f01a19ee6 100644 --- a/src/modules/interactiveterminal/InteractiveTerminalViewStep.h +++ b/src/modules/interactiveterminal/InteractiveTerminalViewStep.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef INTERACTIVETERMINALPAGEPLUGIN_H diff --git a/src/modules/keyboard/CMakeLists.txt b/src/modules/keyboard/CMakeLists.txt index 9dca5f2b0..4ee83ec14 100644 --- a/src/modules/keyboard/CMakeLists.txt +++ b/src/modules/keyboard/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp index bd2c41780..11a20bbb7 100644 --- a/src/modules/keyboard/Config.cpp +++ b/src/modules/keyboard/Config.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-FileCopyrightText: 2020 Camilo Higuita * * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Config.h" diff --git a/src/modules/keyboard/Config.h b/src/modules/keyboard/Config.h index a7e9c621b..44a893faa 100644 --- a/src/modules/keyboard/Config.h +++ b/src/modules/keyboard/Config.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-FileCopyrightText: 2020 Camilo Higuita * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef KEYBOARD_CONFIG_H diff --git a/src/modules/keyboard/KeyboardLayoutModel.cpp b/src/modules/keyboard/KeyboardLayoutModel.cpp index 9077ea60e..5b92678f6 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.cpp +++ b/src/modules/keyboard/KeyboardLayoutModel.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "KeyboardLayoutModel.h" diff --git a/src/modules/keyboard/KeyboardLayoutModel.h b/src/modules/keyboard/KeyboardLayoutModel.h index eeb0666fa..f4699c9f8 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.h +++ b/src/modules/keyboard/KeyboardLayoutModel.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef KEYBOARDLAYOUTMODEL_H diff --git a/src/modules/keyboard/KeyboardPage.cpp b/src/modules/keyboard/KeyboardPage.cpp index 6ab472446..66f4c7570 100644 --- a/src/modules/keyboard/KeyboardPage.cpp +++ b/src/modules/keyboard/KeyboardPage.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac @@ -9,18 +9,8 @@ * by Roland Singer * Copyright (C) 2007 Free Software Foundation, Inc. * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "KeyboardPage.h" diff --git a/src/modules/keyboard/KeyboardPage.h b/src/modules/keyboard/KeyboardPage.h index 73896923a..485e27ed6 100644 --- a/src/modules/keyboard/KeyboardPage.h +++ b/src/modules/keyboard/KeyboardPage.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac @@ -9,18 +9,8 @@ * by Roland Singer * Copyright (C) 2007 Free Software Foundation, Inc. * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef KEYBOARDPAGE_H diff --git a/src/modules/keyboard/KeyboardViewStep.cpp b/src/modules/keyboard/KeyboardViewStep.cpp index b424653f7..55402fd14 100644 --- a/src/modules/keyboard/KeyboardViewStep.cpp +++ b/src/modules/keyboard/KeyboardViewStep.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "KeyboardViewStep.h" diff --git a/src/modules/keyboard/KeyboardViewStep.h b/src/modules/keyboard/KeyboardViewStep.h index 8de05d0af..5d4882aca 100644 --- a/src/modules/keyboard/KeyboardViewStep.h +++ b/src/modules/keyboard/KeyboardViewStep.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef KEYBOARDVIEWSTEP_H diff --git a/src/modules/keyboard/SetKeyboardLayoutJob.cpp b/src/modules/keyboard/SetKeyboardLayoutJob.cpp index e9c20e0aa..d0ad8fcbf 100644 --- a/src/modules/keyboard/SetKeyboardLayoutJob.cpp +++ b/src/modules/keyboard/SetKeyboardLayoutJob.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2011 Lennart Poettering * SPDX-FileCopyrightText: Kay Sievers @@ -11,18 +11,8 @@ * Copyright 2013 Kay Sievers * (originally under LGPLv2.1+, used under the LGPL to GPL conversion clause) * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "SetKeyboardLayoutJob.h" diff --git a/src/modules/keyboard/SetKeyboardLayoutJob.h b/src/modules/keyboard/SetKeyboardLayoutJob.h index ee0cd0a99..f1eabe195 100644 --- a/src/modules/keyboard/SetKeyboardLayoutJob.h +++ b/src/modules/keyboard/SetKeyboardLayoutJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2014 Kevin Kofler * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef SETKEYBOARDLAYOUTJOB_H diff --git a/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp b/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp index d5f6984d4..329913d79 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp +++ b/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. * SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -11,18 +11,8 @@ * * Source by Georg Grabler * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "keyboardglobal.h" diff --git a/src/modules/keyboard/keyboardwidget/keyboardglobal.h b/src/modules/keyboard/keyboardwidget/keyboardglobal.h index 9e03c05e5..07c6e5ea2 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardglobal.h +++ b/src/modules/keyboard/keyboardwidget/keyboardglobal.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. * SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -9,18 +9,8 @@ * by Roland Singer * Copyright (C) 2007 Free Software Foundation, Inc. * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef KEYBOARDGLOBAL_H diff --git a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp index 6cc306526..572965de5 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp +++ b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. * SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -9,18 +9,8 @@ * by Roland Singer * Copyright (C) 2007 Free Software Foundation, Inc. * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "keyboardpreview.h" diff --git a/src/modules/keyboard/keyboardwidget/keyboardpreview.h b/src/modules/keyboard/keyboardwidget/keyboardpreview.h index f09f9b5f5..1a01fe1a2 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardpreview.h +++ b/src/modules/keyboard/keyboardwidget/keyboardpreview.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. * SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -8,18 +8,8 @@ * by Roland Singer * Copyright (C) 2007 Free Software Foundation, Inc. * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef KEYBOARDPREVIEW_H diff --git a/src/modules/keyboardq/CMakeLists.txt b/src/modules/keyboardq/CMakeLists.txt index 173275cef..cc1e7e2c3 100644 --- a/src/modules/keyboardq/CMakeLists.txt +++ b/src/modules/keyboardq/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/keyboardq/KeyboardQmlViewStep.cpp b/src/modules/keyboardq/KeyboardQmlViewStep.cpp index a5c1f9435..d42ab5269 100644 --- a/src/modules/keyboardq/KeyboardQmlViewStep.cpp +++ b/src/modules/keyboardq/KeyboardQmlViewStep.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2020 Camilo Higuita * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "KeyboardQmlViewStep.h" diff --git a/src/modules/keyboardq/KeyboardQmlViewStep.h b/src/modules/keyboardq/KeyboardQmlViewStep.h index b1e7e15e7..4571a9a60 100644 --- a/src/modules/keyboardq/KeyboardQmlViewStep.h +++ b/src/modules/keyboardq/KeyboardQmlViewStep.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef KEYBOARDQMLVIEWSTEP_H diff --git a/src/modules/license/CMakeLists.txt b/src/modules/license/CMakeLists.txt index b52875da6..baaf34b43 100644 --- a/src/modules/license/CMakeLists.txt +++ b/src/modules/license/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index 411032404..1a92e9ac1 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Anke Boersma * SPDX-FileCopyrightText: 2015 Alexandre Arnt @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "LicensePage.h" diff --git a/src/modules/license/LicensePage.h b/src/modules/license/LicensePage.h index 8493825b5..73a62defa 100644 --- a/src/modules/license/LicensePage.h +++ b/src/modules/license/LicensePage.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Anke Boersma * SPDX-FileCopyrightText: 2015 Alexandre Arnt @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LICENSEPAGE_H diff --git a/src/modules/license/LicenseViewStep.cpp b/src/modules/license/LicenseViewStep.cpp index 24ae5652a..aca04a1b3 100644 --- a/src/modules/license/LicenseViewStep.cpp +++ b/src/modules/license/LicenseViewStep.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Anke Boersma * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "LicenseViewStep.h" diff --git a/src/modules/license/LicenseViewStep.h b/src/modules/license/LicenseViewStep.h index 3aef1f7f3..15e345221 100644 --- a/src/modules/license/LicenseViewStep.h +++ b/src/modules/license/LicenseViewStep.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Anke Boersma * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LICENSEPAGEPLUGIN_H diff --git a/src/modules/license/LicenseWidget.cpp b/src/modules/license/LicenseWidget.cpp index a5f6d688a..b2e66515d 100644 --- a/src/modules/license/LicenseWidget.cpp +++ b/src/modules/license/LicenseWidget.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Anke Boersma * SPDX-FileCopyrightText: 2015 Alexandre Arnt @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "LicenseWidget.h" diff --git a/src/modules/license/LicenseWidget.h b/src/modules/license/LicenseWidget.h index 08aa031c5..2d810e80a 100644 --- a/src/modules/license/LicenseWidget.h +++ b/src/modules/license/LicenseWidget.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Anke Boersma * SPDX-FileCopyrightText: 2015 Alexandre Arnt @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LICENSE_LICENSEWIDGET_H diff --git a/src/modules/locale/CMakeLists.txt b/src/modules/locale/CMakeLists.txt index 1e0531c6b..3802f92b2 100644 --- a/src/modules/locale/CMakeLists.txt +++ b/src/modules/locale/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index ae4f772ad..37857cc71 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Config.h" diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index cbebf9844..a7ae0ccaf 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LOCALE_CONFIG_H diff --git a/src/modules/locale/LCLocaleDialog.cpp b/src/modules/locale/LCLocaleDialog.cpp index a3b0a4d2c..efa85c536 100644 --- a/src/modules/locale/LCLocaleDialog.cpp +++ b/src/modules/locale/LCLocaleDialog.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "LCLocaleDialog.h" diff --git a/src/modules/locale/LCLocaleDialog.h b/src/modules/locale/LCLocaleDialog.h index 389c98ba6..2d1869a62 100644 --- a/src/modules/locale/LCLocaleDialog.h +++ b/src/modules/locale/LCLocaleDialog.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LCLOCALEDIALOG_H diff --git a/src/modules/locale/LocaleConfiguration.cpp b/src/modules/locale/LocaleConfiguration.cpp index 41f315f0b..c208dc02d 100644 --- a/src/modules/locale/LocaleConfiguration.cpp +++ b/src/modules/locale/LocaleConfiguration.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "LocaleConfiguration.h" diff --git a/src/modules/locale/LocaleConfiguration.h b/src/modules/locale/LocaleConfiguration.h index de3da1d74..acd80953c 100644 --- a/src/modules/locale/LocaleConfiguration.h +++ b/src/modules/locale/LocaleConfiguration.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LOCALECONFIGURATION_H diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index d4ad6854e..7a6ed8b15 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "LocalePage.h" diff --git a/src/modules/locale/LocalePage.h b/src/modules/locale/LocalePage.h index 57dbfe540..c8b80e906 100644 --- a/src/modules/locale/LocalePage.h +++ b/src/modules/locale/LocalePage.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LOCALEPAGE_H diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 34f4d783b..2145ad201 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "LocaleViewStep.h" diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index 735e5d2ce..fd9c00796 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LOCALEVIEWSTEP_H diff --git a/src/modules/locale/SetTimezoneJob.cpp b/src/modules/locale/SetTimezoneJob.cpp index 2d90a6609..675cca8af 100644 --- a/src/modules/locale/SetTimezoneJob.cpp +++ b/src/modules/locale/SetTimezoneJob.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2015 Rohan Garg * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "SetTimezoneJob.h" diff --git a/src/modules/locale/SetTimezoneJob.h b/src/modules/locale/SetTimezoneJob.h index b4e04edf2..d51171256 100644 --- a/src/modules/locale/SetTimezoneJob.h +++ b/src/modules/locale/SetTimezoneJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef SETTIMEZONEJOB_H diff --git a/src/modules/locale/Tests.cpp b/src/modules/locale/Tests.cpp index 021140b60..6fe9d5662 100644 --- a/src/modules/locale/Tests.cpp +++ b/src/modules/locale/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Config.h" diff --git a/src/modules/locale/timezonewidget/TimeZoneImage.cpp b/src/modules/locale/timezonewidget/TimeZoneImage.cpp index 1d1c1f806..54aa1afd5 100644 --- a/src/modules/locale/timezonewidget/TimeZoneImage.cpp +++ b/src/modules/locale/timezonewidget/TimeZoneImage.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "TimeZoneImage.h" diff --git a/src/modules/locale/timezonewidget/TimeZoneImage.h b/src/modules/locale/timezonewidget/TimeZoneImage.h index 6c77303a5..c36f4e2f7 100644 --- a/src/modules/locale/timezonewidget/TimeZoneImage.h +++ b/src/modules/locale/timezonewidget/TimeZoneImage.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TIMEZONEIMAGE_H diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index b2c0efc5b..9ad9f2d3f 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac @@ -9,18 +9,8 @@ * by Roland Singer * Copyright (C) 2007 Free Software Foundation, Inc. * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "locale/TimeZone.h" diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index dc95429de..3a2911597 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. * SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -9,18 +9,8 @@ * by Roland Singer * Copyright (C) 2007 Free Software Foundation, Inc. * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TIMEZONEWIDGET_H diff --git a/src/modules/localecfg/main.py b/src/modules/localecfg/main.py index 021f4a454..8f0edcd17 100644 --- a/src/modules/localecfg/main.py +++ b/src/modules/localecfg/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Anke Boersma # SPDX-FileCopyrightText: 2015 Philip Müller @@ -10,18 +10,8 @@ # SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import os import re diff --git a/src/modules/localeq/CMakeLists.txt b/src/modules/localeq/CMakeLists.txt index 28ba76e0e..55c16091c 100644 --- a/src/modules/localeq/CMakeLists.txt +++ b/src/modules/localeq/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/localeq/LocaleQmlViewStep.cpp b/src/modules/localeq/LocaleQmlViewStep.cpp index 6531e59a2..6139d3a45 100644 --- a/src/modules/localeq/LocaleQmlViewStep.cpp +++ b/src/modules/localeq/LocaleQmlViewStep.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 20182020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "LocaleQmlViewStep.h" diff --git a/src/modules/localeq/LocaleQmlViewStep.h b/src/modules/localeq/LocaleQmlViewStep.h index 261c1cfc2..ca70ca5d9 100644 --- a/src/modules/localeq/LocaleQmlViewStep.h +++ b/src/modules/localeq/LocaleQmlViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LOCALE_QMLVIEWSTEP_H diff --git a/src/modules/localeq/Map.qml b/src/modules/localeq/Map.qml index 3a2041bc0..845f16ea3 100644 --- a/src/modules/localeq/Map.qml +++ b/src/modules/localeq/Map.qml @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ import QtQuick 2.10 diff --git a/src/modules/localeq/Offline.qml b/src/modules/localeq/Offline.qml index 72170711d..8823a388a 100644 --- a/src/modules/localeq/Offline.qml +++ b/src/modules/localeq/Offline.qml @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ import QtQuick 2.10 diff --git a/src/modules/localeq/i18n.qml b/src/modules/localeq/i18n.qml index 06f871b28..63cad8bf5 100644 --- a/src/modules/localeq/i18n.qml +++ b/src/modules/localeq/i18n.qml @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ import io.calamares.ui 1.0 diff --git a/src/modules/localeq/localeq.qml b/src/modules/localeq/localeq.qml index f862e2d08..dbaa09034 100644 --- a/src/modules/localeq/localeq.qml +++ b/src/modules/localeq/localeq.qml @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ import io.calamares.core 1.0 diff --git a/src/modules/luksbootkeyfile/CMakeLists.txt b/src/modules/luksbootkeyfile/CMakeLists.txt index 620caee7e..1782e7e0e 100644 --- a/src/modules/luksbootkeyfile/CMakeLists.txt +++ b/src/modules/luksbootkeyfile/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp b/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp index 63b5d753d..9bd2f66da 100644 --- a/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp +++ b/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/luksbootkeyfile/LuksBootKeyFileJob.h b/src/modules/luksbootkeyfile/LuksBootKeyFileJob.h index 780f90883..d78a7ecdc 100644 --- a/src/modules/luksbootkeyfile/LuksBootKeyFileJob.h +++ b/src/modules/luksbootkeyfile/LuksBootKeyFileJob.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/luksopenswaphookcfg/main.py b/src/modules/luksopenswaphookcfg/main.py index 96dfea83b..ec09a631b 100644 --- a/src/modules/luksopenswaphookcfg/main.py +++ b/src/modules/luksopenswaphookcfg/main.py @@ -1,25 +1,15 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2016 Teo Mrnjavac # SPDX-FileCopyrightText: 2017 Alf Gaida # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares import os.path diff --git a/src/modules/machineid/CMakeLists.txt b/src/modules/machineid/CMakeLists.txt index eb2551d51..360c0cc8a 100644 --- a/src/modules/machineid/CMakeLists.txt +++ b/src/modules/machineid/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/machineid/MachineIdJob.cpp b/src/modules/machineid/MachineIdJob.cpp index d70b0fed4..302e8c308 100644 --- a/src/modules/machineid/MachineIdJob.cpp +++ b/src/modules/machineid/MachineIdJob.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Kevin Kofler * SPDX-FileCopyrightText: 2016 Philip Müller @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "MachineIdJob.h" diff --git a/src/modules/machineid/MachineIdJob.h b/src/modules/machineid/MachineIdJob.h index 91d091b16..b58d2f4dd 100644 --- a/src/modules/machineid/MachineIdJob.h +++ b/src/modules/machineid/MachineIdJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef MACHINEIDJOB_H diff --git a/src/modules/machineid/Tests.cpp b/src/modules/machineid/Tests.cpp index af2dcee3f..45f0e6954 100644 --- a/src/modules/machineid/Tests.cpp +++ b/src/modules/machineid/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "MachineIdJob.h" diff --git a/src/modules/machineid/Workers.cpp b/src/modules/machineid/Workers.cpp index 67910ce9a..79d075c86 100644 --- a/src/modules/machineid/Workers.cpp +++ b/src/modules/machineid/Workers.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Kevin Kofler * SPDX-FileCopyrightText: 2016 Philip Müller @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Workers.h" diff --git a/src/modules/machineid/Workers.h b/src/modules/machineid/Workers.h index 8e6926760..51c9d526d 100644 --- a/src/modules/machineid/Workers.h +++ b/src/modules/machineid/Workers.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef WORKERS_H diff --git a/src/modules/mkinitfs/main.py b/src/modules/mkinitfs/main.py index cc9d80a37..e3e6e176a 100644 --- a/src/modules/mkinitfs/main.py +++ b/src/modules/mkinitfs/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014-2015 Philip Müller # SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -9,18 +9,8 @@ # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares from libcalamares.utils import target_env_call diff --git a/src/modules/mount/main.py b/src/modules/mount/main.py index caa5ea828..01c0650bf 100644 --- a/src/modules/mount/main.py +++ b/src/modules/mount/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Aurélien Gâteau # SPDX-FileCopyrightText: 2017 Alf Gaida @@ -9,18 +9,8 @@ # SPDX-FileCopyrightText: 2019 Kevin Kofler # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import tempfile import subprocess diff --git a/src/modules/netinstall/CMakeLists.txt b/src/modules/netinstall/CMakeLists.txt index 588ca1f82..4500a314f 100644 --- a/src/modules/netinstall/CMakeLists.txt +++ b/src/modules/netinstall/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/netinstall/Config.cpp b/src/modules/netinstall/Config.cpp index 8383b51af..ddbb36fcc 100644 --- a/src/modules/netinstall/Config.cpp +++ b/src/modules/netinstall/Config.cpp @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Config.h" diff --git a/src/modules/netinstall/Config.h b/src/modules/netinstall/Config.h index a7e979827..56cbd784b 100644 --- a/src/modules/netinstall/Config.h +++ b/src/modules/netinstall/Config.h @@ -5,18 +5,8 @@ * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef NETINSTALL_CONFIG_H diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index 309adc490..75175a941 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "NetInstallPage.h" diff --git a/src/modules/netinstall/NetInstallPage.h b/src/modules/netinstall/NetInstallPage.h index c680360d4..167f9807f 100644 --- a/src/modules/netinstall/NetInstallPage.h +++ b/src/modules/netinstall/NetInstallPage.h @@ -5,18 +5,8 @@ * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef NETINSTALLPAGE_H diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index 3b82ff5e0..beb295c32 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -5,18 +5,8 @@ * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "NetInstallViewStep.h" diff --git a/src/modules/netinstall/NetInstallViewStep.h b/src/modules/netinstall/NetInstallViewStep.h index 44299632c..cd79e7a4a 100644 --- a/src/modules/netinstall/NetInstallViewStep.h +++ b/src/modules/netinstall/NetInstallViewStep.h @@ -4,18 +4,8 @@ * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef NETINSTALLVIEWSTEP_H diff --git a/src/modules/netinstall/PackageModel.cpp b/src/modules/netinstall/PackageModel.cpp index b5e6103c8..beb094d2d 100644 --- a/src/modules/netinstall/PackageModel.cpp +++ b/src/modules/netinstall/PackageModel.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Kyle Robbertze * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PackageModel.h" diff --git a/src/modules/netinstall/PackageModel.h b/src/modules/netinstall/PackageModel.h index 35bc11354..998f42c38 100644 --- a/src/modules/netinstall/PackageModel.h +++ b/src/modules/netinstall/PackageModel.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Kyle Robbertze * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PACKAGEMODEL_H diff --git a/src/modules/netinstall/PackageTreeItem.cpp b/src/modules/netinstall/PackageTreeItem.cpp index 32fcf4296..b30cdf915 100644 --- a/src/modules/netinstall/PackageTreeItem.cpp +++ b/src/modules/netinstall/PackageTreeItem.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Kyle Robbertze * SPDX-FileCopyrightText: 2017 2020, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PackageTreeItem.h" diff --git a/src/modules/netinstall/PackageTreeItem.h b/src/modules/netinstall/PackageTreeItem.h index 5df703a29..c04b9a21d 100644 --- a/src/modules/netinstall/PackageTreeItem.h +++ b/src/modules/netinstall/PackageTreeItem.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Kyle Robbertze * SPDX-FileCopyrightText: 2017 2020, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PACKAGETREEITEM_H diff --git a/src/modules/netinstall/Tests.cpp b/src/modules/netinstall/Tests.cpp index 1ffc72f3f..569d47d15 100644 --- a/src/modules/netinstall/Tests.cpp +++ b/src/modules/netinstall/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PackageModel.h" diff --git a/src/modules/networkcfg/main.py b/src/modules/networkcfg/main.py index 2db819945..608cfd288 100644 --- a/src/modules/networkcfg/main.py +++ b/src/modules/networkcfg/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Philip Müller # SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -9,18 +9,8 @@ # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import os import shutil diff --git a/src/modules/notesqml/CMakeLists.txt b/src/modules/notesqml/CMakeLists.txt index c656bebf6..a5edc7d04 100644 --- a/src/modules/notesqml/CMakeLists.txt +++ b/src/modules/notesqml/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/notesqml/NotesQmlViewStep.cpp b/src/modules/notesqml/NotesQmlViewStep.cpp index 4d0430e95..9f57eb615 100644 --- a/src/modules/notesqml/NotesQmlViewStep.cpp +++ b/src/modules/notesqml/NotesQmlViewStep.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-FileCopyrightText: 2020 Anke Boersma diff --git a/src/modules/notesqml/NotesQmlViewStep.h b/src/modules/notesqml/NotesQmlViewStep.h index 8545b47b9..10f249a88 100644 --- a/src/modules/notesqml/NotesQmlViewStep.h +++ b/src/modules/notesqml/NotesQmlViewStep.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-FileCopyrightText: 2020 Anke Boersma diff --git a/src/modules/notesqml/examples/notesqml.qml.example b/src/modules/notesqml/examples/notesqml.qml.example index b3094f447..782ae404e 100644 --- a/src/modules/notesqml/examples/notesqml.qml.example +++ b/src/modules/notesqml/examples/notesqml.qml.example @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-FileCopyrightText: 2020 Adriaan de Groot diff --git a/src/modules/notesqml/notesqml.qml b/src/modules/notesqml/notesqml.qml index 7be5cffa9..7805f27fa 100644 --- a/src/modules/notesqml/notesqml.qml +++ b/src/modules/notesqml/notesqml.qml @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * Copyright 2020, Anke Boersma * Copyright 2020, Adriaan de Groot diff --git a/src/modules/oemid/CMakeLists.txt b/src/modules/oemid/CMakeLists.txt index 7db23bc30..68a1b653e 100644 --- a/src/modules/oemid/CMakeLists.txt +++ b/src/modules/oemid/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/oemid/IDJob.cpp b/src/modules/oemid/IDJob.cpp index 19ad85cc9..ccda86057 100644 --- a/src/modules/oemid/IDJob.cpp +++ b/src/modules/oemid/IDJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "IDJob.h" diff --git a/src/modules/oemid/IDJob.h b/src/modules/oemid/IDJob.h index dd8bd5e24..17d97b4ee 100644 --- a/src/modules/oemid/IDJob.h +++ b/src/modules/oemid/IDJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef IDJOB_H diff --git a/src/modules/oemid/OEMViewStep.cpp b/src/modules/oemid/OEMViewStep.cpp index 85de722dc..7405c6e3a 100644 --- a/src/modules/oemid/OEMViewStep.cpp +++ b/src/modules/oemid/OEMViewStep.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "OEMViewStep.h" diff --git a/src/modules/oemid/OEMViewStep.h b/src/modules/oemid/OEMViewStep.h index 342c62d60..c07cb7971 100644 --- a/src/modules/oemid/OEMViewStep.h +++ b/src/modules/oemid/OEMViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef OEMVIEWSTEP_H diff --git a/src/modules/openrcdmcryptcfg/main.py b/src/modules/openrcdmcryptcfg/main.py index 83b3a4c40..8eb169867 100644 --- a/src/modules/openrcdmcryptcfg/main.py +++ b/src/modules/openrcdmcryptcfg/main.py @@ -1,24 +1,14 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2017 Ghiunhan Mamut # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import os.path diff --git a/src/modules/packagechooser/CMakeLists.txt b/src/modules/packagechooser/CMakeLists.txt index 539db4f73..ad9cc8527 100644 --- a/src/modules/packagechooser/CMakeLists.txt +++ b/src/modules/packagechooser/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/packagechooser/ItemAppData.cpp b/src/modules/packagechooser/ItemAppData.cpp index 4adebb5c3..dd1eb1fb7 100644 --- a/src/modules/packagechooser/ItemAppData.cpp +++ b/src/modules/packagechooser/ItemAppData.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /** @brief Loading items from AppData XML files. diff --git a/src/modules/packagechooser/ItemAppData.h b/src/modules/packagechooser/ItemAppData.h index c811ae4d5..92d81220d 100644 --- a/src/modules/packagechooser/ItemAppData.h +++ b/src/modules/packagechooser/ItemAppData.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef ITEMAPPDATA_H diff --git a/src/modules/packagechooser/ItemAppStream.cpp b/src/modules/packagechooser/ItemAppStream.cpp index e397f8a15..787db0b3f 100644 --- a/src/modules/packagechooser/ItemAppStream.cpp +++ b/src/modules/packagechooser/ItemAppStream.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /** @brief Loading items from AppData XML files. diff --git a/src/modules/packagechooser/ItemAppStream.h b/src/modules/packagechooser/ItemAppStream.h index cbfccdc90..9fa3608c3 100644 --- a/src/modules/packagechooser/ItemAppStream.h +++ b/src/modules/packagechooser/ItemAppStream.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef ITEMAPPSTREAM_H diff --git a/src/modules/packagechooser/PackageChooserPage.cpp b/src/modules/packagechooser/PackageChooserPage.cpp index ac59f929c..0d5df8177 100644 --- a/src/modules/packagechooser/PackageChooserPage.cpp +++ b/src/modules/packagechooser/PackageChooserPage.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PackageChooserPage.h" diff --git a/src/modules/packagechooser/PackageChooserPage.h b/src/modules/packagechooser/PackageChooserPage.h index a5ce6d2e5..4f485c890 100644 --- a/src/modules/packagechooser/PackageChooserPage.h +++ b/src/modules/packagechooser/PackageChooserPage.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PACKAGECHOOSERPAGE_H diff --git a/src/modules/packagechooser/PackageChooserViewStep.cpp b/src/modules/packagechooser/PackageChooserViewStep.cpp index fb64727f7..f162c074b 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.cpp +++ b/src/modules/packagechooser/PackageChooserViewStep.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PackageChooserViewStep.h" diff --git a/src/modules/packagechooser/PackageChooserViewStep.h b/src/modules/packagechooser/PackageChooserViewStep.h index f74abe376..2a10ce270 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.h +++ b/src/modules/packagechooser/PackageChooserViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PACKAGECHOOSERVIEWSTEP_H diff --git a/src/modules/packagechooser/PackageModel.cpp b/src/modules/packagechooser/PackageModel.cpp index dd8903fc9..1072b8b3b 100644 --- a/src/modules/packagechooser/PackageModel.cpp +++ b/src/modules/packagechooser/PackageModel.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PackageModel.h" diff --git a/src/modules/packagechooser/PackageModel.h b/src/modules/packagechooser/PackageModel.h index 2dff3834a..b8fc9a4ce 100644 --- a/src/modules/packagechooser/PackageModel.h +++ b/src/modules/packagechooser/PackageModel.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PACKAGEMODEL_H diff --git a/src/modules/packagechooser/Tests.cpp b/src/modules/packagechooser/Tests.cpp index 0e9968814..c303f0488 100644 --- a/src/modules/packagechooser/Tests.cpp +++ b/src/modules/packagechooser/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Tests.h" diff --git a/src/modules/packagechooser/Tests.h b/src/modules/packagechooser/Tests.h index 716f930e3..34ac2f682 100644 --- a/src/modules/packagechooser/Tests.h +++ b/src/modules/packagechooser/Tests.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PACKAGECHOOSERTESTS_H diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index 42cf3a4bd..9d912da72 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Pier Luigi Fiorini # SPDX-FileCopyrightText: 2015-2017 Teo Mrnjavac @@ -11,18 +11,8 @@ # SPDX-FileCopyrightText: 2018 Philip Müller # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import abc from string import Template diff --git a/src/modules/partition/CMakeLists.txt b/src/modules/partition/CMakeLists.txt index 5c5d6a6cb..f3ffcb9c7 100644 --- a/src/modules/partition/CMakeLists.txt +++ b/src/modules/partition/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/partition/core/BootLoaderModel.cpp b/src/modules/partition/core/BootLoaderModel.cpp index 13ce2a379..f9743291f 100644 --- a/src/modules/partition/core/BootLoaderModel.cpp +++ b/src/modules/partition/core/BootLoaderModel.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "core/BootLoaderModel.h" diff --git a/src/modules/partition/core/BootLoaderModel.h b/src/modules/partition/core/BootLoaderModel.h index 1157879ef..47e6ccb95 100644 --- a/src/modules/partition/core/BootLoaderModel.h +++ b/src/modules/partition/core/BootLoaderModel.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef BOOTLOADERMODEL_H #define BOOTLOADERMODEL_H diff --git a/src/modules/partition/core/ColorUtils.cpp b/src/modules/partition/core/ColorUtils.cpp index 9b86cdb46..fb613e240 100644 --- a/src/modules/partition/core/ColorUtils.cpp +++ b/src/modules/partition/core/ColorUtils.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "core/ColorUtils.h" diff --git a/src/modules/partition/core/ColorUtils.h b/src/modules/partition/core/ColorUtils.h index ab4e86481..9ebce580b 100644 --- a/src/modules/partition/core/ColorUtils.h +++ b/src/modules/partition/core/ColorUtils.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef COLORUTILS_H #define COLORUTILS_H diff --git a/src/modules/partition/core/Config.cpp b/src/modules/partition/core/Config.cpp index 00b896724..6dcad2d66 100644 --- a/src/modules/partition/core/Config.cpp +++ b/src/modules/partition/core/Config.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Config.h" diff --git a/src/modules/partition/core/Config.h b/src/modules/partition/core/Config.h index fb2f8116c..f2ba9cf58 100644 --- a/src/modules/partition/core/Config.h +++ b/src/modules/partition/core/Config.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITION_CONFIG_H diff --git a/src/modules/partition/core/DeviceList.cpp b/src/modules/partition/core/DeviceList.cpp index dfba17523..2fce62e9d 100644 --- a/src/modules/partition/core/DeviceList.cpp +++ b/src/modules/partition/core/DeviceList.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "DeviceList.h" diff --git a/src/modules/partition/core/DeviceList.h b/src/modules/partition/core/DeviceList.h index 986c6b05f..b76a31a6b 100644 --- a/src/modules/partition/core/DeviceList.h +++ b/src/modules/partition/core/DeviceList.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef DEVICELIST_H diff --git a/src/modules/partition/core/DeviceModel.cpp b/src/modules/partition/core/DeviceModel.cpp index 3e42ab029..bf5541756 100644 --- a/src/modules/partition/core/DeviceModel.cpp +++ b/src/modules/partition/core/DeviceModel.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "core/DeviceModel.h" diff --git a/src/modules/partition/core/DeviceModel.h b/src/modules/partition/core/DeviceModel.h index a03405cb6..71918f64d 100644 --- a/src/modules/partition/core/DeviceModel.h +++ b/src/modules/partition/core/DeviceModel.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef DEVICEMODEL_H #define DEVICEMODEL_H diff --git a/src/modules/partition/core/KPMHelpers.cpp b/src/modules/partition/core/KPMHelpers.cpp index ba8238531..e9e69456d 100644 --- a/src/modules/partition/core/KPMHelpers.cpp +++ b/src/modules/partition/core/KPMHelpers.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * Copyright 2018-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "core/KPMHelpers.h" diff --git a/src/modules/partition/core/KPMHelpers.h b/src/modules/partition/core/KPMHelpers.h index 743dcc790..ad25689f3 100644 --- a/src/modules/partition/core/KPMHelpers.h +++ b/src/modules/partition/core/KPMHelpers.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef KPMHELPERS_H #define KPMHELPERS_H diff --git a/src/modules/partition/core/OsproberEntry.h b/src/modules/partition/core/OsproberEntry.h index 9313a6bb5..a358e4285 100644 --- a/src/modules/partition/core/OsproberEntry.h +++ b/src/modules/partition/core/OsproberEntry.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef OSPROBERENTRY_H diff --git a/src/modules/partition/core/PartUtils.cpp b/src/modules/partition/core/PartUtils.cpp index 1d5484671..099cdf299 100644 --- a/src/modules/partition/core/PartUtils.cpp +++ b/src/modules/partition/core/PartUtils.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * Copyright 2018-2019 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PartUtils.h" diff --git a/src/modules/partition/core/PartUtils.h b/src/modules/partition/core/PartUtils.h index a56cb8a60..f5ca0ddaa 100644 --- a/src/modules/partition/core/PartUtils.h +++ b/src/modules/partition/core/PartUtils.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTUTILS_H diff --git a/src/modules/partition/core/PartitionActions.cpp b/src/modules/partition/core/PartitionActions.cpp index dba02318e..748df2d95 100644 --- a/src/modules/partition/core/PartitionActions.cpp +++ b/src/modules/partition/core/PartitionActions.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PartitionActions.h" diff --git a/src/modules/partition/core/PartitionActions.h b/src/modules/partition/core/PartitionActions.h index 63dfccb11..d86e51048 100644 --- a/src/modules/partition/core/PartitionActions.h +++ b/src/modules/partition/core/PartitionActions.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONACTIONS_H diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index 370caebfb..d78ef70c7 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac @@ -7,18 +7,8 @@ * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "core/PartitionCoreModule.h" diff --git a/src/modules/partition/core/PartitionCoreModule.h b/src/modules/partition/core/PartitionCoreModule.h index b75f67d75..f84bee291 100644 --- a/src/modules/partition/core/PartitionCoreModule.h +++ b/src/modules/partition/core/PartitionCoreModule.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONCOREMODULE_H diff --git a/src/modules/partition/core/PartitionInfo.cpp b/src/modules/partition/core/PartitionInfo.cpp index 415fdc5c1..87aa03b66 100644 --- a/src/modules/partition/core/PartitionInfo.cpp +++ b/src/modules/partition/core/PartitionInfo.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "core/PartitionInfo.h" diff --git a/src/modules/partition/core/PartitionInfo.h b/src/modules/partition/core/PartitionInfo.h index 3ddbe192b..19b66180a 100644 --- a/src/modules/partition/core/PartitionInfo.h +++ b/src/modules/partition/core/PartitionInfo.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONINFO_H #define PARTITIONINFO_H diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index 3df9b21c2..aceda2d72 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-FileCopyrightText: 2018-2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "GlobalStorage.h" diff --git a/src/modules/partition/core/PartitionLayout.h b/src/modules/partition/core/PartitionLayout.h index 52bd96e42..79dff1697 100644 --- a/src/modules/partition/core/PartitionLayout.h +++ b/src/modules/partition/core/PartitionLayout.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018-2019 Collabora Ltd * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONLAYOUT_H diff --git a/src/modules/partition/core/PartitionModel.cpp b/src/modules/partition/core/PartitionModel.cpp index 662e26032..9a8f4d96c 100644 --- a/src/modules/partition/core/PartitionModel.cpp +++ b/src/modules/partition/core/PartitionModel.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "core/PartitionModel.h" diff --git a/src/modules/partition/core/PartitionModel.h b/src/modules/partition/core/PartitionModel.h index 9d1e40f20..f91479adc 100644 --- a/src/modules/partition/core/PartitionModel.h +++ b/src/modules/partition/core/PartitionModel.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONMODEL_H #define PARTITIONMODEL_H diff --git a/src/modules/partition/gui/BootInfoWidget.cpp b/src/modules/partition/gui/BootInfoWidget.cpp index d1df9ae33..5d9dcf8b5 100644 --- a/src/modules/partition/gui/BootInfoWidget.cpp +++ b/src/modules/partition/gui/BootInfoWidget.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ diff --git a/src/modules/partition/gui/BootInfoWidget.h b/src/modules/partition/gui/BootInfoWidget.h index 5865a3b9c..6be3f6e7b 100644 --- a/src/modules/partition/gui/BootInfoWidget.h +++ b/src/modules/partition/gui/BootInfoWidget.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index b032065cf..6b4b8b659 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ChoicePage.h" diff --git a/src/modules/partition/gui/ChoicePage.h b/src/modules/partition/gui/ChoicePage.h index 9aa8befed..7c364cc1f 100644 --- a/src/modules/partition/gui/ChoicePage.h +++ b/src/modules/partition/gui/ChoicePage.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CHOICEPAGE_H diff --git a/src/modules/partition/gui/CreatePartitionDialog.cpp b/src/modules/partition/gui/CreatePartitionDialog.cpp index ae500c500..3b51010b8 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.cpp +++ b/src/modules/partition/gui/CreatePartitionDialog.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2016 Teo Mrnjavac @@ -7,18 +7,8 @@ * SPDX-FileCopyrightText: 2018 Caio Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CreatePartitionDialog.h" diff --git a/src/modules/partition/gui/CreatePartitionDialog.h b/src/modules/partition/gui/CreatePartitionDialog.h index 6991d1fa5..dc756d352 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.h +++ b/src/modules/partition/gui/CreatePartitionDialog.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CREATEPARTITIONDIALOG_H diff --git a/src/modules/partition/gui/CreateVolumeGroupDialog.cpp b/src/modules/partition/gui/CreateVolumeGroupDialog.cpp index 2f5984301..d0eacb725 100644 --- a/src/modules/partition/gui/CreateVolumeGroupDialog.cpp +++ b/src/modules/partition/gui/CreateVolumeGroupDialog.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CreateVolumeGroupDialog.h" diff --git a/src/modules/partition/gui/CreateVolumeGroupDialog.h b/src/modules/partition/gui/CreateVolumeGroupDialog.h index 3c3d5cc1b..4712a9106 100644 --- a/src/modules/partition/gui/CreateVolumeGroupDialog.h +++ b/src/modules/partition/gui/CreateVolumeGroupDialog.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CREATEVOLUMEGROUPDIALOG_H diff --git a/src/modules/partition/gui/DeviceInfoWidget.cpp b/src/modules/partition/gui/DeviceInfoWidget.cpp index d7059c71e..80eacd05b 100644 --- a/src/modules/partition/gui/DeviceInfoWidget.cpp +++ b/src/modules/partition/gui/DeviceInfoWidget.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ diff --git a/src/modules/partition/gui/DeviceInfoWidget.h b/src/modules/partition/gui/DeviceInfoWidget.h index 38a0309f3..a69251be1 100644 --- a/src/modules/partition/gui/DeviceInfoWidget.h +++ b/src/modules/partition/gui/DeviceInfoWidget.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.cpp b/src/modules/partition/gui/EditExistingPartitionDialog.cpp index 633418ec3..1e66c539c 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.cpp +++ b/src/modules/partition/gui/EditExistingPartitionDialog.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2008-2009 Volker Lanz * SPDX-FileCopyrightText: 2014 Aurélien Gâteau @@ -9,18 +9,8 @@ * * Flags handling originally from KDE Partition Manager. * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "EditExistingPartitionDialog.h" diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.h b/src/modules/partition/gui/EditExistingPartitionDialog.h index 7788305fc..96cc2c4c4 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.h +++ b/src/modules/partition/gui/EditExistingPartitionDialog.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef EDITEXISTINGPARTITIONDIALOG_H diff --git a/src/modules/partition/gui/EncryptWidget.cpp b/src/modules/partition/gui/EncryptWidget.cpp index cf9a0c922..3ac56575b 100644 --- a/src/modules/partition/gui/EncryptWidget.cpp +++ b/src/modules/partition/gui/EncryptWidget.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ diff --git a/src/modules/partition/gui/EncryptWidget.h b/src/modules/partition/gui/EncryptWidget.h index c3f7928fe..5c24d68e6 100644 --- a/src/modules/partition/gui/EncryptWidget.h +++ b/src/modules/partition/gui/EncryptWidget.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ diff --git a/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp index f9f1b9c6b..1e8a9e573 100644 --- a/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp +++ b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ListPhysicalVolumeWidgetItem.h" diff --git a/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h index 7d8e8faf0..6e0b1c85a 100644 --- a/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h +++ b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef LISTPHYSICALVOLUMEWIDGETITEM_H diff --git a/src/modules/partition/gui/PartitionBarsView.cpp b/src/modules/partition/gui/PartitionBarsView.cpp index 6799b26f0..81f518acc 100644 --- a/src/modules/partition/gui/PartitionBarsView.cpp +++ b/src/modules/partition/gui/PartitionBarsView.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "gui/PartitionBarsView.h" diff --git a/src/modules/partition/gui/PartitionBarsView.h b/src/modules/partition/gui/PartitionBarsView.h index 1f0100ffa..4dacaaae5 100644 --- a/src/modules/partition/gui/PartitionBarsView.h +++ b/src/modules/partition/gui/PartitionBarsView.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONPREVIEW_H #define PARTITIONPREVIEW_H diff --git a/src/modules/partition/gui/PartitionDialogHelpers.cpp b/src/modules/partition/gui/PartitionDialogHelpers.cpp index 8ab1f38d7..c5c35279d 100644 --- a/src/modules/partition/gui/PartitionDialogHelpers.cpp +++ b/src/modules/partition/gui/PartitionDialogHelpers.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PartitionDialogHelpers.h" diff --git a/src/modules/partition/gui/PartitionDialogHelpers.h b/src/modules/partition/gui/PartitionDialogHelpers.h index fd485a690..7761004b5 100644 --- a/src/modules/partition/gui/PartitionDialogHelpers.h +++ b/src/modules/partition/gui/PartitionDialogHelpers.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITION_GUI_PARTITIONDIALOGHELPERS diff --git a/src/modules/partition/gui/PartitionLabelsView.cpp b/src/modules/partition/gui/PartitionLabelsView.cpp index e42e9de89..7e861d994 100644 --- a/src/modules/partition/gui/PartitionLabelsView.cpp +++ b/src/modules/partition/gui/PartitionLabelsView.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PartitionLabelsView.h" diff --git a/src/modules/partition/gui/PartitionLabelsView.h b/src/modules/partition/gui/PartitionLabelsView.h index 45b2b3407..ac7a272ad 100644 --- a/src/modules/partition/gui/PartitionLabelsView.h +++ b/src/modules/partition/gui/PartitionLabelsView.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONLABELSVIEW_H diff --git a/src/modules/partition/gui/PartitionPage.cpp b/src/modules/partition/gui/PartitionPage.cpp index 3b73f061e..b9930504f 100644 --- a/src/modules/partition/gui/PartitionPage.cpp +++ b/src/modules/partition/gui/PartitionPage.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac @@ -8,18 +8,8 @@ * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PartitionPage.h" diff --git a/src/modules/partition/gui/PartitionPage.h b/src/modules/partition/gui/PartitionPage.h index d23879e15..26c7dbccf 100644 --- a/src/modules/partition/gui/PartitionPage.h +++ b/src/modules/partition/gui/PartitionPage.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONPAGE_H diff --git a/src/modules/partition/gui/PartitionSizeController.cpp b/src/modules/partition/gui/PartitionSizeController.cpp index aefc13992..b7757c32d 100644 --- a/src/modules/partition/gui/PartitionSizeController.cpp +++ b/src/modules/partition/gui/PartitionSizeController.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "gui/PartitionSizeController.h" diff --git a/src/modules/partition/gui/PartitionSizeController.h b/src/modules/partition/gui/PartitionSizeController.h index 1353404c5..69cf2ef21 100644 --- a/src/modules/partition/gui/PartitionSizeController.h +++ b/src/modules/partition/gui/PartitionSizeController.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONSIZECONTROLLER_H diff --git a/src/modules/partition/gui/PartitionSplitterWidget.cpp b/src/modules/partition/gui/PartitionSplitterWidget.cpp index 08543756c..93c77bb69 100644 --- a/src/modules/partition/gui/PartitionSplitterWidget.cpp +++ b/src/modules/partition/gui/PartitionSplitterWidget.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PartitionSplitterWidget.h" diff --git a/src/modules/partition/gui/PartitionSplitterWidget.h b/src/modules/partition/gui/PartitionSplitterWidget.h index 36bd96559..474ea313e 100644 --- a/src/modules/partition/gui/PartitionSplitterWidget.h +++ b/src/modules/partition/gui/PartitionSplitterWidget.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONSPLITTERWIDGET_H diff --git a/src/modules/partition/gui/PartitionViewSelectionFilter.h b/src/modules/partition/gui/PartitionViewSelectionFilter.h index 078999f31..fc2f5bcb3 100644 --- a/src/modules/partition/gui/PartitionViewSelectionFilter.h +++ b/src/modules/partition/gui/PartitionViewSelectionFilter.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONVIEWSELECTIONFILTER_H diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index 59f117b26..1b70124dd 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac @@ -7,18 +7,8 @@ * SPDX-FileCopyrightText: 2020 Anke Boersma . */ #include "gui/PartitionViewStep.h" diff --git a/src/modules/partition/gui/PartitionViewStep.h b/src/modules/partition/gui/PartitionViewStep.h index da1ec5255..6ece9a2b1 100644 --- a/src/modules/partition/gui/PartitionViewStep.h +++ b/src/modules/partition/gui/PartitionViewStep.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONVIEWSTEP_H diff --git a/src/modules/partition/gui/ReplaceWidget.cpp b/src/modules/partition/gui/ReplaceWidget.cpp index 6c4d800dd..7e4fb48d6 100644 --- a/src/modules/partition/gui/ReplaceWidget.cpp +++ b/src/modules/partition/gui/ReplaceWidget.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ReplaceWidget.h" diff --git a/src/modules/partition/gui/ReplaceWidget.h b/src/modules/partition/gui/ReplaceWidget.h index e30b57bb3..5277e5626 100644 --- a/src/modules/partition/gui/ReplaceWidget.h +++ b/src/modules/partition/gui/ReplaceWidget.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef REPLACEWIDGET_H diff --git a/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp b/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp index 1aae5f49b..d0103954d 100644 --- a/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp +++ b/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ResizeVolumeGroupDialog.h" diff --git a/src/modules/partition/gui/ResizeVolumeGroupDialog.h b/src/modules/partition/gui/ResizeVolumeGroupDialog.h index af5a29ae6..7b8ecf6d6 100644 --- a/src/modules/partition/gui/ResizeVolumeGroupDialog.h +++ b/src/modules/partition/gui/ResizeVolumeGroupDialog.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef RESIZEVOLUMEGROUPDIALOG_H diff --git a/src/modules/partition/gui/ScanningDialog.cpp b/src/modules/partition/gui/ScanningDialog.cpp index 5099484d9..cd22bb861 100644 --- a/src/modules/partition/gui/ScanningDialog.cpp +++ b/src/modules/partition/gui/ScanningDialog.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ScanningDialog.h" diff --git a/src/modules/partition/gui/ScanningDialog.h b/src/modules/partition/gui/ScanningDialog.h index 25cd36227..757b94eb6 100644 --- a/src/modules/partition/gui/ScanningDialog.h +++ b/src/modules/partition/gui/ScanningDialog.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef SCANNINGDIALOG_H diff --git a/src/modules/partition/gui/VolumeGroupBaseDialog.cpp b/src/modules/partition/gui/VolumeGroupBaseDialog.cpp index 95aa75ac2..6277c30e5 100644 --- a/src/modules/partition/gui/VolumeGroupBaseDialog.cpp +++ b/src/modules/partition/gui/VolumeGroupBaseDialog.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "VolumeGroupBaseDialog.h" diff --git a/src/modules/partition/gui/VolumeGroupBaseDialog.h b/src/modules/partition/gui/VolumeGroupBaseDialog.h index 7c7b43e48..253160d97 100644 --- a/src/modules/partition/gui/VolumeGroupBaseDialog.h +++ b/src/modules/partition/gui/VolumeGroupBaseDialog.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef VOLUMEGROUPBASEDIALOG_H diff --git a/src/modules/partition/jobs/ClearMountsJob.cpp b/src/modules/partition/jobs/ClearMountsJob.cpp index c51a784c1..825c82ec1 100644 --- a/src/modules/partition/jobs/ClearMountsJob.cpp +++ b/src/modules/partition/jobs/ClearMountsJob.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Kevin Kofler * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ClearMountsJob.h" diff --git a/src/modules/partition/jobs/ClearMountsJob.h b/src/modules/partition/jobs/ClearMountsJob.h index 7d9df270a..99a7b4844 100644 --- a/src/modules/partition/jobs/ClearMountsJob.h +++ b/src/modules/partition/jobs/ClearMountsJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CLEARMOUNTSJOB_H diff --git a/src/modules/partition/jobs/ClearTempMountsJob.cpp b/src/modules/partition/jobs/ClearTempMountsJob.cpp index 36b83f56c..2f90278fe 100644 --- a/src/modules/partition/jobs/ClearTempMountsJob.cpp +++ b/src/modules/partition/jobs/ClearTempMountsJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ClearTempMountsJob.h" diff --git a/src/modules/partition/jobs/ClearTempMountsJob.h b/src/modules/partition/jobs/ClearTempMountsJob.h index 6f29f197c..0726975c7 100644 --- a/src/modules/partition/jobs/ClearTempMountsJob.h +++ b/src/modules/partition/jobs/ClearTempMountsJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CLEARTEMPMOUNTSJOB_H diff --git a/src/modules/partition/jobs/CreatePartitionJob.cpp b/src/modules/partition/jobs/CreatePartitionJob.cpp index ac61518f8..a4fa195ee 100644 --- a/src/modules/partition/jobs/CreatePartitionJob.cpp +++ b/src/modules/partition/jobs/CreatePartitionJob.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 2020, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CreatePartitionJob.h" diff --git a/src/modules/partition/jobs/CreatePartitionJob.h b/src/modules/partition/jobs/CreatePartitionJob.h index b11874fad..3d6199804 100644 --- a/src/modules/partition/jobs/CreatePartitionJob.h +++ b/src/modules/partition/jobs/CreatePartitionJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CREATEPARTITIONJOB_H diff --git a/src/modules/partition/jobs/CreatePartitionTableJob.cpp b/src/modules/partition/jobs/CreatePartitionTableJob.cpp index a585c094a..0913a1cfc 100644 --- a/src/modules/partition/jobs/CreatePartitionTableJob.cpp +++ b/src/modules/partition/jobs/CreatePartitionTableJob.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CreatePartitionTableJob.h" diff --git a/src/modules/partition/jobs/CreatePartitionTableJob.h b/src/modules/partition/jobs/CreatePartitionTableJob.h index 02f23d169..ee1ba0a38 100644 --- a/src/modules/partition/jobs/CreatePartitionTableJob.h +++ b/src/modules/partition/jobs/CreatePartitionTableJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CREATEPARTITIONTABLEJOB_H diff --git a/src/modules/partition/jobs/CreateVolumeGroupJob.cpp b/src/modules/partition/jobs/CreateVolumeGroupJob.cpp index 6d9c9d6e0..af9997df6 100644 --- a/src/modules/partition/jobs/CreateVolumeGroupJob.cpp +++ b/src/modules/partition/jobs/CreateVolumeGroupJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CreateVolumeGroupJob.h" diff --git a/src/modules/partition/jobs/CreateVolumeGroupJob.h b/src/modules/partition/jobs/CreateVolumeGroupJob.h index 0e73c52fa..e9682043c 100644 --- a/src/modules/partition/jobs/CreateVolumeGroupJob.h +++ b/src/modules/partition/jobs/CreateVolumeGroupJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CREATEVOLUMEGROUPJOB_H diff --git a/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp b/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp index 3adce640c..92086015d 100644 --- a/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp +++ b/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "DeactivateVolumeGroupJob.h" diff --git a/src/modules/partition/jobs/DeactivateVolumeGroupJob.h b/src/modules/partition/jobs/DeactivateVolumeGroupJob.h index 13b60069e..a6bdd4ddb 100644 --- a/src/modules/partition/jobs/DeactivateVolumeGroupJob.h +++ b/src/modules/partition/jobs/DeactivateVolumeGroupJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef DEACTIVATEVOLUMEGROUPJOB_H diff --git a/src/modules/partition/jobs/DeletePartitionJob.cpp b/src/modules/partition/jobs/DeletePartitionJob.cpp index 8a9fedce2..913fd8cd6 100644 --- a/src/modules/partition/jobs/DeletePartitionJob.cpp +++ b/src/modules/partition/jobs/DeletePartitionJob.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "DeletePartitionJob.h" diff --git a/src/modules/partition/jobs/DeletePartitionJob.h b/src/modules/partition/jobs/DeletePartitionJob.h index 5a0332bf4..6d5ff1377 100644 --- a/src/modules/partition/jobs/DeletePartitionJob.h +++ b/src/modules/partition/jobs/DeletePartitionJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef DELETEPARTITIONJOB_H diff --git a/src/modules/partition/jobs/FillGlobalStorageJob.cpp b/src/modules/partition/jobs/FillGlobalStorageJob.cpp index a0b229d45..f26b70a97 100644 --- a/src/modules/partition/jobs/FillGlobalStorageJob.cpp +++ b/src/modules/partition/jobs/FillGlobalStorageJob.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 2019-2020, Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "FillGlobalStorageJob.h" diff --git a/src/modules/partition/jobs/FillGlobalStorageJob.h b/src/modules/partition/jobs/FillGlobalStorageJob.h index 823f64f2f..c1256de12 100644 --- a/src/modules/partition/jobs/FillGlobalStorageJob.h +++ b/src/modules/partition/jobs/FillGlobalStorageJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef FILLGLOBALSTORAGEJOB_H diff --git a/src/modules/partition/jobs/FormatPartitionJob.cpp b/src/modules/partition/jobs/FormatPartitionJob.cpp index d12c89022..4dadacf9c 100644 --- a/src/modules/partition/jobs/FormatPartitionJob.cpp +++ b/src/modules/partition/jobs/FormatPartitionJob.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "FormatPartitionJob.h" diff --git a/src/modules/partition/jobs/FormatPartitionJob.h b/src/modules/partition/jobs/FormatPartitionJob.h index f3a721187..38b2ee1a9 100644 --- a/src/modules/partition/jobs/FormatPartitionJob.h +++ b/src/modules/partition/jobs/FormatPartitionJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef FORMATPARTITIONJOB_H diff --git a/src/modules/partition/jobs/PartitionJob.cpp b/src/modules/partition/jobs/PartitionJob.cpp index de96ef950..3bdb05ebd 100644 --- a/src/modules/partition/jobs/PartitionJob.cpp +++ b/src/modules/partition/jobs/PartitionJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PartitionJob.h" diff --git a/src/modules/partition/jobs/PartitionJob.h b/src/modules/partition/jobs/PartitionJob.h index 66b9704a1..5222cf4d3 100644 --- a/src/modules/partition/jobs/PartitionJob.h +++ b/src/modules/partition/jobs/PartitionJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONJOB_H diff --git a/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp b/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp index 7c4b2ea31..a3b5b8d73 100644 --- a/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp +++ b/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "RemoveVolumeGroupJob.h" diff --git a/src/modules/partition/jobs/RemoveVolumeGroupJob.h b/src/modules/partition/jobs/RemoveVolumeGroupJob.h index 06ed2ab2a..03f52135b 100644 --- a/src/modules/partition/jobs/RemoveVolumeGroupJob.h +++ b/src/modules/partition/jobs/RemoveVolumeGroupJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef REMOVEVOLUMEGROUPJOB_H diff --git a/src/modules/partition/jobs/ResizePartitionJob.cpp b/src/modules/partition/jobs/ResizePartitionJob.cpp index c71078dc1..87b87c1c0 100644 --- a/src/modules/partition/jobs/ResizePartitionJob.cpp +++ b/src/modules/partition/jobs/ResizePartitionJob.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Andrius Štikonas * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ResizePartitionJob.h" diff --git a/src/modules/partition/jobs/ResizePartitionJob.h b/src/modules/partition/jobs/ResizePartitionJob.h index f86b792fc..9e24b2d04 100644 --- a/src/modules/partition/jobs/ResizePartitionJob.h +++ b/src/modules/partition/jobs/ResizePartitionJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef RESIZEPARTITIONJOB_H diff --git a/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp b/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp index b9828ccb4..0c017877e 100644 --- a/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp +++ b/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ResizeVolumeGroupJob.h" diff --git a/src/modules/partition/jobs/ResizeVolumeGroupJob.h b/src/modules/partition/jobs/ResizeVolumeGroupJob.h index e77098184..9e3f038c2 100644 --- a/src/modules/partition/jobs/ResizeVolumeGroupJob.h +++ b/src/modules/partition/jobs/ResizeVolumeGroupJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Caio Jordão Carvalho * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef RESIZEVOLUMEGROUPJOB_H diff --git a/src/modules/partition/jobs/SetPartitionFlagsJob.cpp b/src/modules/partition/jobs/SetPartitionFlagsJob.cpp index cf8aabd35..7b6101241 100644 --- a/src/modules/partition/jobs/SetPartitionFlagsJob.cpp +++ b/src/modules/partition/jobs/SetPartitionFlagsJob.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2008 2010, Volker Lanz * SPDX-FileCopyrightText: 2016 Teo Mrnjavac @@ -7,18 +7,8 @@ * * Based on the SetPartFlagsJob class from KDE Partition Manager * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "SetPartitionFlagsJob.h" diff --git a/src/modules/partition/jobs/SetPartitionFlagsJob.h b/src/modules/partition/jobs/SetPartitionFlagsJob.h index 957c6893f..eb6d9586c 100644 --- a/src/modules/partition/jobs/SetPartitionFlagsJob.h +++ b/src/modules/partition/jobs/SetPartitionFlagsJob.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later @@ -6,18 +6,8 @@ * Based on the SetPartFlagsJob class from KDE Partition Manager, * SPDX-FileCopyrightText: 2008 2010, Volker Lanz * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef SETPARTITIONFLAGSJOB_H diff --git a/src/modules/partition/tests/CMakeLists.txt b/src/modules/partition/tests/CMakeLists.txt index a2b99660c..dd4e41068 100644 --- a/src/modules/partition/tests/CMakeLists.txt +++ b/src/modules/partition/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/partition/tests/ClearMountsJobTests.cpp b/src/modules/partition/tests/ClearMountsJobTests.cpp index 69d34c848..e05af4897 100644 --- a/src/modules/partition/tests/ClearMountsJobTests.cpp +++ b/src/modules/partition/tests/ClearMountsJobTests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ClearMountsJobTests.h" diff --git a/src/modules/partition/tests/ClearMountsJobTests.h b/src/modules/partition/tests/ClearMountsJobTests.h index 27dfca8b9..4b13fdc3d 100644 --- a/src/modules/partition/tests/ClearMountsJobTests.h +++ b/src/modules/partition/tests/ClearMountsJobTests.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CLEARMOUNTSJOBTESTS_H diff --git a/src/modules/partition/tests/PartitionJobTests.cpp b/src/modules/partition/tests/PartitionJobTests.cpp index 9aa58ff58..60e72e006 100644 --- a/src/modules/partition/tests/PartitionJobTests.cpp +++ b/src/modules/partition/tests/PartitionJobTests.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-FileCopyrightText: 2017, 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PartitionJobTests.h" diff --git a/src/modules/partition/tests/PartitionJobTests.h b/src/modules/partition/tests/PartitionJobTests.h index d2f0eb16c..364213f54 100644 --- a/src/modules/partition/tests/PartitionJobTests.h +++ b/src/modules/partition/tests/PartitionJobTests.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Aurélien Gâteau * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTITIONJOBTESTS_H diff --git a/src/modules/plasmalnf/CMakeLists.txt b/src/modules/plasmalnf/CMakeLists.txt index 8c1ca8c3c..15c836b5b 100644 --- a/src/modules/plasmalnf/CMakeLists.txt +++ b/src/modules/plasmalnf/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/plasmalnf/PlasmaLnfJob.cpp b/src/modules/plasmalnf/PlasmaLnfJob.cpp index b4ffadcd8..0721bcd88 100644 --- a/src/modules/plasmalnf/PlasmaLnfJob.cpp +++ b/src/modules/plasmalnf/PlasmaLnfJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PlasmaLnfJob.h" diff --git a/src/modules/plasmalnf/PlasmaLnfJob.h b/src/modules/plasmalnf/PlasmaLnfJob.h index 9462f66ac..314070c0c 100644 --- a/src/modules/plasmalnf/PlasmaLnfJob.h +++ b/src/modules/plasmalnf/PlasmaLnfJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PLASMALNFJOB_H diff --git a/src/modules/plasmalnf/PlasmaLnfPage.cpp b/src/modules/plasmalnf/PlasmaLnfPage.cpp index f3bcc09c8..a44620074 100644 --- a/src/modules/plasmalnf/PlasmaLnfPage.cpp +++ b/src/modules/plasmalnf/PlasmaLnfPage.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PlasmaLnfPage.h" diff --git a/src/modules/plasmalnf/PlasmaLnfPage.h b/src/modules/plasmalnf/PlasmaLnfPage.h index 286a10418..287da8b29 100644 --- a/src/modules/plasmalnf/PlasmaLnfPage.h +++ b/src/modules/plasmalnf/PlasmaLnfPage.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PLASMALNFPAGE_H diff --git a/src/modules/plasmalnf/PlasmaLnfViewStep.cpp b/src/modules/plasmalnf/PlasmaLnfViewStep.cpp index e9d1c3f61..9bda0164b 100644 --- a/src/modules/plasmalnf/PlasmaLnfViewStep.cpp +++ b/src/modules/plasmalnf/PlasmaLnfViewStep.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "PlasmaLnfViewStep.h" diff --git a/src/modules/plasmalnf/PlasmaLnfViewStep.h b/src/modules/plasmalnf/PlasmaLnfViewStep.h index c2ecf9ddd..a98ec4bf5 100644 --- a/src/modules/plasmalnf/PlasmaLnfViewStep.h +++ b/src/modules/plasmalnf/PlasmaLnfViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PLASMALNFVIEWSTEP_H diff --git a/src/modules/plasmalnf/ThemeInfo.h b/src/modules/plasmalnf/ThemeInfo.h index 432738e17..6848fb8c3 100644 --- a/src/modules/plasmalnf/ThemeInfo.h +++ b/src/modules/plasmalnf/ThemeInfo.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PLASMALNF_THEMEINFO_H diff --git a/src/modules/plasmalnf/ThemeWidget.cpp b/src/modules/plasmalnf/ThemeWidget.cpp index 896b28772..8314544eb 100644 --- a/src/modules/plasmalnf/ThemeWidget.cpp +++ b/src/modules/plasmalnf/ThemeWidget.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ThemeWidget.h" diff --git a/src/modules/plasmalnf/ThemeWidget.h b/src/modules/plasmalnf/ThemeWidget.h index e3574dfac..133dfc2a0 100644 --- a/src/modules/plasmalnf/ThemeWidget.h +++ b/src/modules/plasmalnf/ThemeWidget.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PLASMALNF_THEMEWIDGET_H diff --git a/src/modules/plymouthcfg/main.py b/src/modules/plymouthcfg/main.py index 404a4651c..c51314e7f 100644 --- a/src/modules/plymouthcfg/main.py +++ b/src/modules/plymouthcfg/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2016 Artoo # SPDX-FileCopyrightText: 2017 Alf Gaida @@ -9,18 +9,8 @@ # SPDX-FileCopyrightText: 2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares diff --git a/src/modules/preservefiles/CMakeLists.txt b/src/modules/preservefiles/CMakeLists.txt index afff84050..d19645089 100644 --- a/src/modules/preservefiles/CMakeLists.txt +++ b/src/modules/preservefiles/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/preservefiles/PreserveFiles.cpp b/src/modules/preservefiles/PreserveFiles.cpp index 7262630e0..7fe9a97ae 100644 --- a/src/modules/preservefiles/PreserveFiles.cpp +++ b/src/modules/preservefiles/PreserveFiles.cpp @@ -1,8 +1,7 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE * */ diff --git a/src/modules/preservefiles/PreserveFiles.h b/src/modules/preservefiles/PreserveFiles.h index fdba933fa..d2b7373e2 100644 --- a/src/modules/preservefiles/PreserveFiles.h +++ b/src/modules/preservefiles/PreserveFiles.h @@ -1,8 +1,7 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE * */ diff --git a/src/modules/rawfs/main.py b/src/modules/rawfs/main.py index cdce1d784..a72ffe19d 100644 --- a/src/modules/rawfs/main.py +++ b/src/modules/rawfs/main.py @@ -1,23 +1,13 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2019 Collabora Ltd # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares import os diff --git a/src/modules/removeuser/CMakeLists.txt b/src/modules/removeuser/CMakeLists.txt index 7818926c5..cf4243e7d 100644 --- a/src/modules/removeuser/CMakeLists.txt +++ b/src/modules/removeuser/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/removeuser/RemoveUserJob.cpp b/src/modules/removeuser/RemoveUserJob.cpp index 221f4f5ec..9475b9bea 100644 --- a/src/modules/removeuser/RemoveUserJob.cpp +++ b/src/modules/removeuser/RemoveUserJob.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Alf Gaida * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "RemoveUserJob.h" diff --git a/src/modules/removeuser/RemoveUserJob.h b/src/modules/removeuser/RemoveUserJob.h index 25c5c8e73..8f7de35e0 100644 --- a/src/modules/removeuser/RemoveUserJob.h +++ b/src/modules/removeuser/RemoveUserJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef REMOVEUSERJOB_H diff --git a/src/modules/services-openrc/main.py b/src/modules/services-openrc/main.py index f89369a7f..cb1ae8020 100644 --- a/src/modules/services-openrc/main.py +++ b/src/modules/services-openrc/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2016 Artoo # SPDX-FileCopyrightText: 2017 Philip Müller @@ -9,18 +9,8 @@ # SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares diff --git a/src/modules/services-systemd/main.py b/src/modules/services-systemd/main.py index 8932bc7e5..e3d3e20a5 100644 --- a/src/modules/services-systemd/main.py +++ b/src/modules/services-systemd/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Philip Müller # SPDX-FileCopyrightText: 2014 Teo Mrnjavac @@ -9,18 +9,8 @@ # SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import libcalamares diff --git a/src/modules/shellprocess/CMakeLists.txt b/src/modules/shellprocess/CMakeLists.txt index 5804f5e35..448be0625 100644 --- a/src/modules/shellprocess/CMakeLists.txt +++ b/src/modules/shellprocess/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/shellprocess/ShellProcessJob.cpp b/src/modules/shellprocess/ShellProcessJob.cpp index bbc79934c..ab00a0bdd 100644 --- a/src/modules/shellprocess/ShellProcessJob.cpp +++ b/src/modules/shellprocess/ShellProcessJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ShellProcessJob.h" diff --git a/src/modules/shellprocess/ShellProcessJob.h b/src/modules/shellprocess/ShellProcessJob.h index 956f7b0c8..c63a7b91f 100644 --- a/src/modules/shellprocess/ShellProcessJob.h +++ b/src/modules/shellprocess/ShellProcessJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef SHELLPROCESSJOB_H diff --git a/src/modules/shellprocess/Tests.cpp b/src/modules/shellprocess/Tests.cpp index 434520cca..77368db48 100644 --- a/src/modules/shellprocess/Tests.cpp +++ b/src/modules/shellprocess/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Tests.h" diff --git a/src/modules/shellprocess/Tests.h b/src/modules/shellprocess/Tests.h index 76b05563b..cabeaada2 100644 --- a/src/modules/shellprocess/Tests.h +++ b/src/modules/shellprocess/Tests.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TESTS_H diff --git a/src/modules/summary/CMakeLists.txt b/src/modules/summary/CMakeLists.txt index 9aad8b8ac..57dc731cb 100644 --- a/src/modules/summary/CMakeLists.txt +++ b/src/modules/summary/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/summary/SummaryPage.cpp b/src/modules/summary/SummaryPage.cpp index ebcde6a2c..d6917d962 100644 --- a/src/modules/summary/SummaryPage.cpp +++ b/src/modules/summary/SummaryPage.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "SummaryPage.h" diff --git a/src/modules/summary/SummaryPage.h b/src/modules/summary/SummaryPage.h index 6d0148760..1adb67017 100644 --- a/src/modules/summary/SummaryPage.h +++ b/src/modules/summary/SummaryPage.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef SUMMARYPAGE_H diff --git a/src/modules/summary/SummaryViewStep.cpp b/src/modules/summary/SummaryViewStep.cpp index da0e10e1e..c5b6841ed 100644 --- a/src/modules/summary/SummaryViewStep.cpp +++ b/src/modules/summary/SummaryViewStep.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "SummaryViewStep.h" diff --git a/src/modules/summary/SummaryViewStep.h b/src/modules/summary/SummaryViewStep.h index 3e23199ca..0a2933d8b 100644 --- a/src/modules/summary/SummaryViewStep.h +++ b/src/modules/summary/SummaryViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef SUMMARYPAGEPLUGIN_H diff --git a/src/modules/tracking/CMakeLists.txt b/src/modules/tracking/CMakeLists.txt index 25df2b7ac..fe0b315e3 100644 --- a/src/modules/tracking/CMakeLists.txt +++ b/src/modules/tracking/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index c840d541c..f1f61edfd 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Config.h" diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index 787a92dc5..655a71410 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TRACKING_CONFIG_H diff --git a/src/modules/tracking/Tests.cpp b/src/modules/tracking/Tests.cpp index 0fed06947..661d83273 100644 --- a/src/modules/tracking/Tests.cpp +++ b/src/modules/tracking/Tests.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index f4ee504e2..dba6000e1 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "TrackingJobs.h" diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index d87deb412..b58880f00 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TRACKING_TRACKINGJOBS_H diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 2644b0cd0..ffdb8be66 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "TrackingPage.h" diff --git a/src/modules/tracking/TrackingPage.h b/src/modules/tracking/TrackingPage.h index 7600019bd..eb843b755 100644 --- a/src/modules/tracking/TrackingPage.h +++ b/src/modules/tracking/TrackingPage.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TRACKINGPAGE_H diff --git a/src/modules/tracking/TrackingType.h b/src/modules/tracking/TrackingType.h index 15c9cc792..81af34688 100644 --- a/src/modules/tracking/TrackingType.h +++ b/src/modules/tracking/TrackingType.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TRACKINGTYPE_H diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index ce32bb2e6..7955846c3 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "TrackingViewStep.h" diff --git a/src/modules/tracking/TrackingViewStep.h b/src/modules/tracking/TrackingViewStep.h index 335fc77d0..7b27dbec6 100644 --- a/src/modules/tracking/TrackingViewStep.h +++ b/src/modules/tracking/TrackingViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef TRACKINGVIEWSTEP_H diff --git a/src/modules/umount/main.py b/src/modules/umount/main.py index ea0976453..86ab1599a 100644 --- a/src/modules/umount/main.py +++ b/src/modules/umount/main.py @@ -1,25 +1,15 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Aurélien Gâteau # SPDX-FileCopyrightText: 2016 Anke Boersma # SPDX-FileCopyrightText: 2018 Adriaan de Groot # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import os import subprocess diff --git a/src/modules/unpackfs/main.py b/src/modules/unpackfs/main.py index bd69125a1..d89607465 100644 --- a/src/modules/unpackfs/main.py +++ b/src/modules/unpackfs/main.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2014 Teo Mrnjavac # SPDX-FileCopyrightText: 2014 Daniel Hillenbrand @@ -12,18 +12,8 @@ # SPDX-FileCopyrightText: 2020 Gabriel Craciunescu # SPDX-License-Identifier: GPL-3.0-or-later # -# Calamares is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Calamares is Free Software: see the License-Identifier above. # -# Calamares 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Calamares. If not, see . import os import re diff --git a/src/modules/users/CMakeLists.txt b/src/modules/users/CMakeLists.txt index 8f5424827..5752ae67a 100644 --- a/src/modules/users/CMakeLists.txt +++ b/src/modules/users/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/users/CheckPWQuality.cpp b/src/modules/users/CheckPWQuality.cpp index 7bce0c09f..9332c6080 100644 --- a/src/modules/users/CheckPWQuality.cpp +++ b/src/modules/users/CheckPWQuality.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later @@ -7,18 +7,8 @@ * GPL-3.0-or-later (libpwquality is BSD-3-clause or GPL-2.0-or-later, * so we pick GPL-3.0-or-later). * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CheckPWQuality.h" diff --git a/src/modules/users/CheckPWQuality.h b/src/modules/users/CheckPWQuality.h index 80dc809fe..6d7fb56df 100644 --- a/src/modules/users/CheckPWQuality.h +++ b/src/modules/users/CheckPWQuality.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CHECKPWQUALITY_H diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 322884c0e..5ce8c8ed1 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Config.h" diff --git a/src/modules/users/Config.h b/src/modules/users/Config.h index 1e2a4c639..33e82cd89 100644 --- a/src/modules/users/Config.h +++ b/src/modules/users/Config.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef USERS_CONFIG_H diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index 0f08b1700..24b0f36d1 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot diff --git a/src/modules/users/CreateUserJob.h b/src/modules/users/CreateUserJob.h index b5d3e9490..0a46198b9 100644 --- a/src/modules/users/CreateUserJob.h +++ b/src/modules/users/CreateUserJob.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CREATEUSERJOB_H diff --git a/src/modules/users/SetHostNameJob.cpp b/src/modules/users/SetHostNameJob.cpp index ff69c64a9..be86ad6ab 100644 --- a/src/modules/users/SetHostNameJob.cpp +++ b/src/modules/users/SetHostNameJob.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Rohan Garg * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "SetHostNameJob.h" diff --git a/src/modules/users/SetHostNameJob.h b/src/modules/users/SetHostNameJob.h index 4cc29c9ac..9d44579cb 100644 --- a/src/modules/users/SetHostNameJob.h +++ b/src/modules/users/SetHostNameJob.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Rohan Garg * SPDX-FileCopyrightText: 2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef SETHOSTNAMEJOB_CPP_H diff --git a/src/modules/users/SetPasswordJob.cpp b/src/modules/users/SetPasswordJob.cpp index 78efd3efc..dd2fdc244 100644 --- a/src/modules/users/SetPasswordJob.cpp +++ b/src/modules/users/SetPasswordJob.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "SetPasswordJob.h" diff --git a/src/modules/users/SetPasswordJob.h b/src/modules/users/SetPasswordJob.h index aa1af0417..aa75a86e1 100644 --- a/src/modules/users/SetPasswordJob.h +++ b/src/modules/users/SetPasswordJob.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef SETPASSWORDJOB_H diff --git a/src/modules/users/TestCreateUserJob.cpp b/src/modules/users/TestCreateUserJob.cpp index 93dc8967e..a801baf45 100644 --- a/src/modules/users/TestCreateUserJob.cpp +++ b/src/modules/users/TestCreateUserJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "CreateUserJob.h" diff --git a/src/modules/users/TestPasswordJob.cpp b/src/modules/users/TestPasswordJob.cpp index 8677f88c2..1409e37b6 100644 --- a/src/modules/users/TestPasswordJob.cpp +++ b/src/modules/users/TestPasswordJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "SetPasswordJob.h" diff --git a/src/modules/users/TestSetHostNameJob.cpp b/src/modules/users/TestSetHostNameJob.cpp index 0e887a5f1..17061037f 100644 --- a/src/modules/users/TestSetHostNameJob.cpp +++ b/src/modules/users/TestSetHostNameJob.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "SetHostNameJob.h" diff --git a/src/modules/users/Tests.cpp b/src/modules/users/Tests.cpp index f0fc91165..c92391d21 100644 --- a/src/modules/users/Tests.cpp +++ b/src/modules/users/Tests.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Config.h" diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 3e04ff7a7..2418b319e 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot @@ -10,18 +10,8 @@ * by Roland Singer * Copyright (C) 2007 Free Software Foundation, Inc. * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "UsersPage.h" diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index 9c3998feb..f4d2c47d4 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2007 Free Software Foundation, Inc. * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac @@ -9,18 +9,8 @@ * by Roland Singer * Copyright (C) 2007 Free Software Foundation, Inc. * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef USERSPAGE_H diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index 3b2b7152f..df823df06 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "UsersViewStep.h" diff --git a/src/modules/users/UsersViewStep.h b/src/modules/users/UsersViewStep.h index 6f6baf58b..a03948adf 100644 --- a/src/modules/users/UsersViewStep.h +++ b/src/modules/users/UsersViewStep.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef USERSPAGEPLUGIN_H diff --git a/src/modules/usersq/CMakeLists.txt b/src/modules/usersq/CMakeLists.txt index 8fb0a282c..26c270bfb 100644 --- a/src/modules/usersq/CMakeLists.txt +++ b/src/modules/usersq/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/usersq/UsersQmlViewStep.cpp b/src/modules/usersq/UsersQmlViewStep.cpp index 1c011e9b6..15c542e38 100644 --- a/src/modules/usersq/UsersQmlViewStep.cpp +++ b/src/modules/usersq/UsersQmlViewStep.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2020 Camilo Higuita * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "UsersQmlViewStep.h" diff --git a/src/modules/usersq/UsersQmlViewStep.h b/src/modules/usersq/UsersQmlViewStep.h index 2a3c1a6c5..b3d474e65 100644 --- a/src/modules/usersq/UsersQmlViewStep.h +++ b/src/modules/usersq/UsersQmlViewStep.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-FileCopyrightText: 2020 Camilo Higuita * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef USERSQMLVIEWSTEP_H diff --git a/src/modules/usersq/usersq.qml b/src/modules/usersq/usersq.qml index 64cbea85e..dcc4aa76a 100644 --- a/src/modules/usersq/usersq.qml +++ b/src/modules/usersq/usersq.qml @@ -1,21 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-License-Identifier: GPL-3.0-or-later - * License-Filename: LICENSE * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ import io.calamares.core 1.0 @@ -32,7 +21,7 @@ Kirigami.ScrollablePage { width: parent.width height: parent.height - + Kirigami.Theme.backgroundColor: "#EFF0F1" Kirigami.Theme.textColor: "#1F1F1F" @@ -219,7 +208,7 @@ Kirigami.ScrollablePage { color: "#6D6D6D" } } - + CheckBox { visible: config.allowWeakPasswords @@ -256,7 +245,7 @@ Kirigami.ScrollablePage { //checked: false onToggled: config.reuseUserPasswordForRoot = !config.reuseUserPasswordForRoot } - + Label { visible: root.checked diff --git a/src/modules/webview/CMakeLists.txt b/src/modules/webview/CMakeLists.txt index 3a08f3237..8de5e690c 100644 --- a/src/modules/webview/CMakeLists.txt +++ b/src/modules/webview/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/webview/WebViewStep.cpp b/src/modules/webview/WebViewStep.cpp index 671156737..db8439775 100644 --- a/src/modules/webview/WebViewStep.cpp +++ b/src/modules/webview/WebViewStep.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Rohan Garg * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "WebViewConfig.h" diff --git a/src/modules/webview/WebViewStep.h b/src/modules/webview/WebViewStep.h index 9f6658cdc..caeed07eb 100644 --- a/src/modules/webview/WebViewStep.h +++ b/src/modules/webview/WebViewStep.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015 Rohan Garg * SPDX-FileCopyrightText: 2016 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef WEBVIEWPLUGIN_H diff --git a/src/modules/welcome/CMakeLists.txt b/src/modules/welcome/CMakeLists.txt index 0620627a2..a468af102 100644 --- a/src/modules/welcome/CMakeLists.txt +++ b/src/modules/welcome/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/welcome/Config.cpp b/src/modules/welcome/Config.cpp index d9f4ca19c..d4641562a 100644 --- a/src/modules/welcome/Config.cpp +++ b/src/modules/welcome/Config.cpp @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "Config.h" diff --git a/src/modules/welcome/Config.h b/src/modules/welcome/Config.h index b248f81c8..a3f1276a6 100644 --- a/src/modules/welcome/Config.h +++ b/src/modules/welcome/Config.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef WELCOME_CONFIG_H diff --git a/src/modules/welcome/WelcomePage.cpp b/src/modules/welcome/WelcomePage.cpp index 0f22631d3..ddceec4a3 100644 --- a/src/modules/welcome/WelcomePage.cpp +++ b/src/modules/welcome/WelcomePage.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2015 Anke Boersma * SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "WelcomePage.h" diff --git a/src/modules/welcome/WelcomePage.h b/src/modules/welcome/WelcomePage.h index 07bea6d76..04c17d25f 100644 --- a/src/modules/welcome/WelcomePage.h +++ b/src/modules/welcome/WelcomePage.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-FileCopyrightText: 2019 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef WELCOMEPAGE_H diff --git a/src/modules/welcome/WelcomeViewStep.cpp b/src/modules/welcome/WelcomeViewStep.cpp index 7cf5e744a..2a0d57bc4 100644 --- a/src/modules/welcome/WelcomeViewStep.cpp +++ b/src/modules/welcome/WelcomeViewStep.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "WelcomeViewStep.h" diff --git a/src/modules/welcome/WelcomeViewStep.h b/src/modules/welcome/WelcomeViewStep.h index c28dc335e..16eec6d29 100644 --- a/src/modules/welcome/WelcomeViewStep.h +++ b/src/modules/welcome/WelcomeViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef WELCOMEVIEWSTEP_H diff --git a/src/modules/welcome/checker/CheckerContainer.cpp b/src/modules/welcome/checker/CheckerContainer.cpp index 58c9396fa..0dcd820a3 100644 --- a/src/modules/welcome/checker/CheckerContainer.cpp +++ b/src/modules/welcome/checker/CheckerContainer.cpp @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /* Based on code extracted from RequirementsChecker.cpp */ diff --git a/src/modules/welcome/checker/CheckerContainer.h b/src/modules/welcome/checker/CheckerContainer.h index 58358519f..c721f2b36 100644 --- a/src/modules/welcome/checker/CheckerContainer.h +++ b/src/modules/welcome/checker/CheckerContainer.h @@ -1,22 +1,12 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-FileCopyrightText: 2017 Gabriel Craciunescu * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /* Based on code extracted from RequirementsChecker.cpp */ diff --git a/src/modules/welcome/checker/GeneralRequirements.cpp b/src/modules/welcome/checker/GeneralRequirements.cpp index 32d971b6d..66a9f5ed7 100644 --- a/src/modules/welcome/checker/GeneralRequirements.cpp +++ b/src/modules/welcome/checker/GeneralRequirements.cpp @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac * SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot @@ -6,18 +6,8 @@ * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "GeneralRequirements.h" diff --git a/src/modules/welcome/checker/GeneralRequirements.h b/src/modules/welcome/checker/GeneralRequirements.h index a0a302054..b6646da11 100644 --- a/src/modules/welcome/checker/GeneralRequirements.h +++ b/src/modules/welcome/checker/GeneralRequirements.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2017 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef GENERALREQUIREMENTS_H diff --git a/src/modules/welcome/checker/ResultWidget.cpp b/src/modules/welcome/checker/ResultWidget.cpp index b86cd23b0..ef3a7fdc1 100644 --- a/src/modules/welcome/checker/ResultWidget.cpp +++ b/src/modules/welcome/checker/ResultWidget.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ResultWidget.h" diff --git a/src/modules/welcome/checker/ResultWidget.h b/src/modules/welcome/checker/ResultWidget.h index a56ed66e8..d77c0d9bb 100644 --- a/src/modules/welcome/checker/ResultWidget.h +++ b/src/modules/welcome/checker/ResultWidget.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CHECKER_RESULTWIDGET_H diff --git a/src/modules/welcome/checker/ResultsListWidget.cpp b/src/modules/welcome/checker/ResultsListWidget.cpp index 7286dd256..1ad2c1b29 100644 --- a/src/modules/welcome/checker/ResultsListWidget.cpp +++ b/src/modules/welcome/checker/ResultsListWidget.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "ResultsListWidget.h" diff --git a/src/modules/welcome/checker/ResultsListWidget.h b/src/modules/welcome/checker/ResultsListWidget.h index a93cc2371..aa6c62258 100644 --- a/src/modules/welcome/checker/ResultsListWidget.h +++ b/src/modules/welcome/checker/ResultsListWidget.h @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef CHECKER_RESULTSLISTWIDGET_H diff --git a/src/modules/welcome/checker/partman_devices.c b/src/modules/welcome/checker/partman_devices.c index 040c584ba..7cde7a86d 100644 --- a/src/modules/welcome/checker/partman_devices.c +++ b/src/modules/welcome/checker/partman_devices.c @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later @@ -6,18 +6,8 @@ * Based on parted_devices.c, from partman-base. * * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /* This is third-party ancient C code. Don't format it. */ diff --git a/src/modules/welcome/checker/partman_devices.h b/src/modules/welcome/checker/partman_devices.h index 9c14cda78..14d1edc75 100644 --- a/src/modules/welcome/checker/partman_devices.h +++ b/src/modules/welcome/checker/partman_devices.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014 Teo Mrnjavac * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef PARTMAN_DEVICES_H diff --git a/src/modules/welcomeq/CMakeLists.txt b/src/modules/welcomeq/CMakeLists.txt index 8e36cd5f1..c9cafe7a8 100644 --- a/src/modules/welcomeq/CMakeLists.txt +++ b/src/modules/welcomeq/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/modules/welcomeq/Recommended.qml b/src/modules/welcomeq/Recommended.qml index cc44c44a9..1afc60950 100644 --- a/src/modules/welcomeq/Recommended.qml +++ b/src/modules/welcomeq/Recommended.qml @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /* THIS COMPONENT IS UNUSED -- from the default welcomeq.qml at least */ diff --git a/src/modules/welcomeq/Requirements.qml b/src/modules/welcomeq/Requirements.qml index 415b828d8..159d88446 100644 --- a/src/modules/welcomeq/Requirements.qml +++ b/src/modules/welcomeq/Requirements.qml @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ import io.calamares.core 1.0 diff --git a/src/modules/welcomeq/WelcomeQmlViewStep.cpp b/src/modules/welcomeq/WelcomeQmlViewStep.cpp index e76ab3e00..bf30d9915 100644 --- a/src/modules/welcomeq/WelcomeQmlViewStep.cpp +++ b/src/modules/welcomeq/WelcomeQmlViewStep.cpp @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #include "WelcomeQmlViewStep.h" diff --git a/src/modules/welcomeq/WelcomeQmlViewStep.h b/src/modules/welcomeq/WelcomeQmlViewStep.h index 6dc06eef4..4c68ea2ae 100644 --- a/src/modules/welcomeq/WelcomeQmlViewStep.h +++ b/src/modules/welcomeq/WelcomeQmlViewStep.h @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ #ifndef WELCOME_QMLVIEWSTEP_H diff --git a/src/modules/welcomeq/about.qml b/src/modules/welcomeq/about.qml index db8a80135..21050c4ea 100644 --- a/src/modules/welcomeq/about.qml +++ b/src/modules/welcomeq/about.qml @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ import io.calamares.ui 1.0 diff --git a/src/modules/welcomeq/release_notes.qml b/src/modules/welcomeq/release_notes.qml index cd2ef257d..6da5bc7c9 100644 --- a/src/modules/welcomeq/release_notes.qml +++ b/src/modules/welcomeq/release_notes.qml @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ import io.calamares.ui 1.0 diff --git a/src/modules/welcomeq/welcomeq.qml b/src/modules/welcomeq/welcomeq.qml index e749a621c..02b5424c7 100644 --- a/src/modules/welcomeq/welcomeq.qml +++ b/src/modules/welcomeq/welcomeq.qml @@ -1,21 +1,11 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2020 Adriaan de Groot * SPDX-FileCopyrightText: 2020 Anke Boersma * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ import io.calamares.core 1.0 import io.calamares.ui 1.0 diff --git a/src/qml/calamares/CMakeLists.txt b/src/qml/calamares/CMakeLists.txt index b6c2b0048..d74e79ea0 100644 --- a/src/qml/calamares/CMakeLists.txt +++ b/src/qml/calamares/CMakeLists.txt @@ -1,4 +1,4 @@ -# === This file is part of Calamares - === +# === This file is part of Calamares - === # # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause diff --git a/src/qml/calamares/slideshow/BackButton.qml b/src/qml/calamares/slideshow/BackButton.qml index 4a51f467e..4e420e064 100644 --- a/src/qml/calamares/slideshow/BackButton.qml +++ b/src/qml/calamares/slideshow/BackButton.qml @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ NavButton { diff --git a/src/qml/calamares/slideshow/ForwardButton.qml b/src/qml/calamares/slideshow/ForwardButton.qml index 023f0e56b..7838fab3b 100644 --- a/src/qml/calamares/slideshow/ForwardButton.qml +++ b/src/qml/calamares/slideshow/ForwardButton.qml @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ NavButton { diff --git a/src/qml/calamares/slideshow/NavButton.qml b/src/qml/calamares/slideshow/NavButton.qml index 01537d343..bdb2f402e 100644 --- a/src/qml/calamares/slideshow/NavButton.qml +++ b/src/qml/calamares/slideshow/NavButton.qml @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /* This is a navigation (arrow) button that fades in on hover, and diff --git a/src/qml/calamares/slideshow/Presentation.qml b/src/qml/calamares/slideshow/Presentation.qml index dcfb00949..1eed2e842 100644 --- a/src/qml/calamares/slideshow/Presentation.qml +++ b/src/qml/calamares/slideshow/Presentation.qml @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2017 Adriaan de Groot * SPDX-FileCopyrightText: 2016 The Qt Company Ltd. diff --git a/src/qml/calamares/slideshow/Slide.qml b/src/qml/calamares/slideshow/Slide.qml index 0783cc528..9cb9e7381 100644 --- a/src/qml/calamares/slideshow/Slide.qml +++ b/src/qml/calamares/slideshow/Slide.qml @@ -1,4 +1,4 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2012 Digia Plc and/or its subsidiary(-ies). * SPDX-License-Identifier: LGPL-2.1-only diff --git a/src/qml/calamares/slideshow/SlideCounter.qml b/src/qml/calamares/slideshow/SlideCounter.qml index 790471331..d5b2de7be 100644 --- a/src/qml/calamares/slideshow/SlideCounter.qml +++ b/src/qml/calamares/slideshow/SlideCounter.qml @@ -1,20 +1,10 @@ -/* === This file is part of Calamares - === +/* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2018 Adriaan de Groot * SPDX-License-Identifier: GPL-3.0-or-later * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Calamares is Free Software: see the License-Identifier above. * - * Calamares 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . */ /* This control just shows a (non-translated) count of the slides From a2180936efcb8bd79eb734582bb745eafc50ec47 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 Aug 2020 23:44:08 +0200 Subject: [PATCH 28/54] CI: apply coding style across the entire codebase again --- lang/txload.cpp | 120 +++++++++++------- src/calamares/CalamaresApplication.cpp | 3 +- src/calamares/CalamaresWindow.h | 2 +- src/calamares/DebugWindow.cpp | 3 +- src/calamares/test_conf.cpp | 25 ++-- src/calamares/testmain.cpp | 5 +- src/libcalamares/geoip/Handler.cpp | 3 +- src/libcalamares/geoip/Handler.h | 6 +- src/libcalamares/locale/TimeZone.cpp | 7 +- src/libcalamares/modulesystem/Module.cpp | 3 +- .../modulesystem/RequirementsModel.cpp | 5 +- src/libcalamares/partition/KPMManager.cpp | 3 +- .../utils/CalamaresUtilsSystem.cpp | 8 +- src/libcalamares/utils/Tests.cpp | 3 +- src/libcalamares/utils/Traits.h | 35 +++-- src/libcalamares/utils/Variant.h | 7 +- src/libcalamaresui/ViewManager.cpp | 2 +- .../modulesystem/ModuleFactory.cpp | 15 ++- .../modulesystem/ModuleManager.cpp | 18 +-- .../modulesystem/ProcessJobModule.cpp | 2 +- .../modulesystem/PythonJobModule.cpp | 2 +- .../modulesystem/PythonQtViewModule.cpp | 2 +- src/libcalamaresui/utils/ImageRegistry.cpp | 2 +- .../viewpages/BlankViewStep.cpp | 2 +- .../viewpages/PythonQtGlobalStorageWrapper.h | 2 +- src/libcalamaresui/viewpages/PythonQtJob.h | 2 +- .../viewpages/PythonQtUtilsWrapper.h | 2 +- src/libcalamaresui/viewpages/QmlViewStep.cpp | 2 +- src/libcalamaresui/viewpages/ViewStep.cpp | 2 +- src/libcalamaresui/widgets/ClickableLabel.cpp | 2 +- .../widgets/FixedAspectRatioLabel.cpp | 2 +- .../widgets/PrettyRadioButton.h | 2 +- src/modules/preservefiles/PreserveFiles.cpp | 3 +- src/modules/tracking/Tests.cpp | 12 +- src/modules/users/SetHostNameJob.cpp | 4 +- src/modules/users/Tests.cpp | 37 +++--- src/modules/users/UsersPage.cpp | 3 +- src/modules/usersq/UsersQmlViewStep.cpp | 6 +- src/modules/usersq/UsersQmlViewStep.h | 9 +- src/modules/webview/WebViewStep.cpp | 2 +- src/modules/welcome/WelcomePage.cpp | 2 +- .../welcome/checker/GeneralRequirements.cpp | 12 +- src/modules/welcome/checker/partman_devices.h | 7 +- src/modules/welcomeq/WelcomeQmlViewStep.cpp | 6 +- 44 files changed, 234 insertions(+), 168 deletions(-) diff --git a/lang/txload.cpp b/lang/txload.cpp index 62dc13e7d..b7d14c8bf 100644 --- a/lang/txload.cpp +++ b/lang/txload.cpp @@ -26,29 +26,31 @@ #include static const char usage[] = "Usage: txload [ ...]\n" - "\n" - "Reads a .ts source file and zero or more .ts \n" - "files, and does a comparison between the translations. Source (English)\n" - "strings that are untranslated are flagged in each of the translation\n" - "files, while differences in the translations are themselves also shown.\n" - "\n" - "Outputs to stdout a human-readable list of differences between the\n" - "translations.\n"; + "\n" + "Reads a .ts source file and zero or more .ts \n" + "files, and does a comparison between the translations. Source (English)\n" + "strings that are untranslated are flagged in each of the translation\n" + "files, while differences in the translations are themselves also shown.\n" + "\n" + "Outputs to stdout a human-readable list of differences between the\n" + "translations.\n"; -bool load_file(const char* filename, QDomDocument& doc) +bool +load_file( const char* filename, QDomDocument& doc ) { - QFile file(filename); + QFile file( filename ); QString err; int err_line, err_column; - if (!file.open(QIODevice::ReadOnly)) + if ( !file.open( QIODevice::ReadOnly ) ) { qDebug() << "Could not open" << filename; return false; } - QByteArray ba( file.read(1024 * 1024) ); + QByteArray ba( file.read( 1024 * 1024 ) ); qDebug() << "Read" << ba.length() << "bytes from" << filename; - if (!doc.setContent(ba, &err, &err_line, &err_column)) { + if ( !doc.setContent( ba, &err, &err_line, &err_column ) ) + { qDebug() << "Could not read" << filename << ':' << err_line << ':' << err_column << ' ' << err; file.close(); return false; @@ -58,15 +60,20 @@ bool load_file(const char* filename, QDomDocument& doc) return true; } -QDomElement find_context(QDomDocument& doc, const QString& name) +QDomElement +find_context( QDomDocument& doc, const QString& name ) { QDomElement top = doc.documentElement(); QDomNode n = top.firstChild(); - while (!n.isNull()) { - if (n.isElement()) { + while ( !n.isNull() ) + { + if ( n.isElement() ) + { QDomElement e = n.toElement(); if ( ( e.tagName() == "context" ) && ( e.firstChildElement( "name" ).text() == name ) ) + { return e; + } } n = n.nextSibling(); } @@ -74,17 +81,22 @@ QDomElement find_context(QDomDocument& doc, const QString& name) return QDomElement(); } -QDomElement find_message(QDomElement& context, const QString& source) +QDomElement +find_message( QDomElement& context, const QString& source ) { QDomNode n = context.firstChild(); - while (!n.isNull()) { - if (n.isElement()) { + while ( !n.isNull() ) + { + if ( n.isElement() ) + { QDomElement e = n.toElement(); if ( e.tagName() == "message" ) { QString msource = e.firstChildElement( "source" ).text(); if ( msource == source ) + { return e; + } } } n = n.nextSibling(); @@ -92,11 +104,14 @@ QDomElement find_message(QDomElement& context, const QString& source) return QDomElement(); } -bool merge_into(QDomElement& origin, QDomElement& alternate) +bool +merge_into( QDomElement& origin, QDomElement& alternate ) { QDomNode n = alternate.firstChild(); - while (!n.isNull()) { - if (n.isElement()) { + while ( !n.isNull() ) + { + if ( n.isElement() ) + { QDomElement alternateMessage = n.toElement(); if ( alternateMessage.tagName() == "message" ) { @@ -119,7 +134,8 @@ bool merge_into(QDomElement& origin, QDomElement& alternate) } if ( !alternateTranslationText.isEmpty() && ( alternateTranslationText != originTranslationText ) ) { - qDebug() << "\n\n\nSource:" << alternateSourceText << "\nTL1:" << originTranslationText << "\nTL2:" << alternateTranslationText; + qDebug() << "\n\n\nSource:" << alternateSourceText << "\nTL1:" << originTranslationText + << "\nTL2:" << alternateTranslationText; } } } @@ -130,12 +146,14 @@ bool merge_into(QDomElement& origin, QDomElement& alternate) } - -bool merge_into(QDomDocument& originDocument, QDomElement& context) +bool +merge_into( QDomDocument& originDocument, QDomElement& context ) { QDomElement name = context.firstChildElement( "name" ); if ( name.isNull() ) + { return false; + } QString contextname = name.text(); QDomElement originContext = find_context( originDocument, contextname ); @@ -148,16 +166,21 @@ bool merge_into(QDomDocument& originDocument, QDomElement& context) return merge_into( originContext, context ); } -bool merge_into(QDomDocument& originDocument, QDomDocument& alternateDocument) +bool +merge_into( QDomDocument& originDocument, QDomDocument& alternateDocument ) { QDomElement top = alternateDocument.documentElement(); QDomNode n = top.firstChild(); - while (!n.isNull()) { - if (n.isElement()) { + while ( !n.isNull() ) + { + if ( n.isElement() ) + { QDomElement e = n.toElement(); if ( e.tagName() == "context" ) if ( !merge_into( originDocument, e ) ) + { return false; + } } n = n.nextSibling(); } @@ -165,39 +188,46 @@ bool merge_into(QDomDocument& originDocument, QDomDocument& alternateDocument) return true; } -int main(int argc, char** argv) +int +main( int argc, char** argv ) { - QCoreApplication a(argc, argv); + QCoreApplication a( argc, argv ); - if (argc < 2) + if ( argc < 2 ) { qWarning() << usage; return 1; } - QDomDocument originDocument("origin"); - if ( !load_file(argv[1], originDocument) ) - return 1; - - for (int i = 2; i < argc; ++i) + QDomDocument originDocument( "origin" ); + if ( !load_file( argv[ 1 ], originDocument ) ) { - QDomDocument alternateDocument("alternate"); - if ( !load_file(argv[i], alternateDocument) ) - return 1; - if ( !merge_into( originDocument, alternateDocument ) ) - return 1; + return 1; } - QString outfilename( argv[1] ); + for ( int i = 2; i < argc; ++i ) + { + QDomDocument alternateDocument( "alternate" ); + if ( !load_file( argv[ i ], alternateDocument ) ) + { + return 1; + } + if ( !merge_into( originDocument, alternateDocument ) ) + { + return 1; + } + } + + QString outfilename( argv[ 1 ] ); outfilename.append( ".new" ); - QFile outfile(outfilename); - if (!outfile.open(QIODevice::WriteOnly)) + QFile outfile( outfilename ); + if ( !outfile.open( QIODevice::WriteOnly ) ) { qDebug() << "Could not open" << outfilename; return 1; } - outfile.write( originDocument.toString(4).toUtf8() ); + outfile.write( originDocument.toString( 4 ).toUtf8() ); outfile.close(); return 0; diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 3f4bf808c..164b3ed5c 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -67,7 +67,8 @@ CalamaresApplication::init() { Logger::setupLogfile(); cDebug() << "Calamares version:" << CALAMARES_VERSION; - cDebug() << Logger::SubEntry << " languages:" << QString( CALAMARES_TRANSLATION_LANGUAGES ).replace( ";", ", " ); + cDebug() << Logger::SubEntry + << " languages:" << QString( CALAMARES_TRANSLATION_LANGUAGES ).replace( ";", ", " ); if ( !Calamares::Settings::instance() ) { diff --git a/src/calamares/CalamaresWindow.h b/src/calamares/CalamaresWindow.h index 8eed50ca5..b6e63aa6b 100644 --- a/src/calamares/CalamaresWindow.h +++ b/src/calamares/CalamaresWindow.h @@ -28,7 +28,7 @@ class CalamaresWindow : public QWidget Q_OBJECT public: CalamaresWindow( QWidget* parent = nullptr ); - virtual ~CalamaresWindow() override { } + virtual ~CalamaresWindow() override {} public slots: /** diff --git a/src/calamares/DebugWindow.cpp b/src/calamares/DebugWindow.cpp index fecf71ea1..18395400a 100644 --- a/src/calamares/DebugWindow.cpp +++ b/src/calamares/DebugWindow.cpp @@ -184,7 +184,8 @@ DebugWindow::DebugWindow() #endif ] { QString moduleName = m_ui->modulesListView->currentIndex().data().toString(); - Module* module = ModuleManager::instance()->moduleInstance( ModuleSystem::InstanceKey::fromString( moduleName ) ); + Module* module + = ModuleManager::instance()->moduleInstance( ModuleSystem::InstanceKey::fromString( moduleName ) ); if ( module ) { m_module = module->configurationMap(); diff --git a/src/calamares/test_conf.cpp b/src/calamares/test_conf.cpp index a1b663468..73b19aa26 100644 --- a/src/calamares/test_conf.cpp +++ b/src/calamares/test_conf.cpp @@ -14,26 +14,29 @@ #include "utils/Yaml.h" -#include #include +#include #include -#include #include +#include using std::cerr; static const char usage[] = "Usage: test_conf [-v] [-b] ...\n"; -int main(int argc, char** argv) +int +main( int argc, char** argv ) { bool verbose = false; bool bytes = false; int opt; - while ((opt = getopt(argc, argv, "vb")) != -1) { - switch (opt) { + while ( ( opt = getopt( argc, argv, "vb" ) ) != -1 ) + { + switch ( opt ) + { case 'v': verbose = true; break; @@ -52,7 +55,7 @@ int main(int argc, char** argv) return 1; } - const char* filename = argv[optind]; + const char* filename = argv[ optind ]; try { YAML::Node doc; @@ -60,10 +63,14 @@ int main(int argc, char** argv) { QFile f( filename ); if ( f.open( QFile::ReadOnly | QFile::Text ) ) + { doc = YAML::Load( f.readAll().constData() ); + } } else + { doc = YAML::LoadFile( filename ); + } if ( doc.IsNull() ) { @@ -86,12 +93,14 @@ int main(int argc, char** argv) { cerr << "Keys:\n"; for ( auto i = doc.begin(); i != doc.end(); ++i ) - cerr << i->first.as() << '\n'; + { + cerr << i->first.as< std::string >() << '\n'; + } } } catch ( YAML::Exception& e ) { - cerr << "WARNING:" << filename << '\n'; + cerr << "WARNING:" << filename << '\n'; cerr << "WARNING: YAML parser error " << e.what() << '\n'; return 1; } diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp index 7a7967f43..c9d6f7195 100644 --- a/src/calamares/testmain.cpp +++ b/src/calamares/testmain.cpp @@ -192,7 +192,7 @@ ExecViewModule::ExecViewModule() // We don't have one, so build one -- this gives us "x@x". QVariantMap m; m.insert( "name", "x" ); - Calamares::Module::initFrom( Calamares::ModuleSystem::Descriptor::fromDescriptorData(m), "x" ); + Calamares::Module::initFrom( Calamares::ModuleSystem::Descriptor::fromDescriptorData( m ), "x" ); } ExecViewModule::~ExecViewModule() {} @@ -323,7 +323,8 @@ load_module( const ModuleConfig& moduleConfig ) cDebug() << "Module" << moduleName << "job-configuration:" << configFile; - Calamares::Module* module = Calamares::moduleFromDescriptor( Calamares::ModuleSystem::Descriptor::fromDescriptorData( descriptor ), name, configFile, moduleDirectory ); + Calamares::Module* module = Calamares::moduleFromDescriptor( + Calamares::ModuleSystem::Descriptor::fromDescriptorData( descriptor ), name, configFile, moduleDirectory ); return module; } diff --git a/src/libcalamares/geoip/Handler.cpp b/src/libcalamares/geoip/Handler.cpp index 6825fa5fe..d954b8fc0 100644 --- a/src/libcalamares/geoip/Handler.cpp +++ b/src/libcalamares/geoip/Handler.cpp @@ -67,7 +67,8 @@ Handler::Handler( const QString& implementation, const QString& url, const QStri { cWarning() << "GeoIP style *none* does not do anything."; } - else if ( m_type == Type::Fixed && Calamares::Settings::instance() && !Calamares::Settings::instance()->debugMode() ) + else if ( m_type == Type::Fixed && Calamares::Settings::instance() + && !Calamares::Settings::instance()->debugMode() ) { cWarning() << "GeoIP style *fixed* is not recommended for production."; } diff --git a/src/libcalamares/geoip/Handler.h b/src/libcalamares/geoip/Handler.h index 03133978c..e13198b94 100644 --- a/src/libcalamares/geoip/Handler.h +++ b/src/libcalamares/geoip/Handler.h @@ -34,10 +34,10 @@ class DLLEXPORT Handler public: enum class Type { - None, // No lookup, returns empty string - JSON, // JSON-formatted data, returns extracted field + None, // No lookup, returns empty string + JSON, // JSON-formatted data, returns extracted field XML, // XML-formatted data, returns extracted field - Fixed // Returns selector string verbatim + Fixed // Returns selector string verbatim }; /** @brief An unconfigured handler; this always returns errors. */ diff --git a/src/libcalamares/locale/TimeZone.cpp b/src/libcalamares/locale/TimeZone.cpp index c33705682..b9dbac5ee 100644 --- a/src/libcalamares/locale/TimeZone.cpp +++ b/src/libcalamares/locale/TimeZone.cpp @@ -358,7 +358,9 @@ ZonesModel::find( const QString& region, const QString& zone ) const } STATICTEST const TimeZoneData* -find( double startingDistance, const ZoneVector& zones, const std::function< double( const TimeZoneData* ) >& distanceFunc ) +find( double startingDistance, + const ZoneVector& zones, + const std::function< double( const TimeZoneData* ) >& distanceFunc ) { double smallestDistance = startingDistance; const TimeZoneData* closest = nullptr; @@ -379,7 +381,8 @@ const TimeZoneData* ZonesModel::find( const std::function< double( const TimeZoneData* ) >& distanceFunc ) const { const auto* officialZone = CalamaresUtils::Locale::find( 1000000.0, m_private->m_zones, distanceFunc ); - const auto* altZone = CalamaresUtils::Locale::find( distanceFunc( officialZone ), m_private->m_altZones, distanceFunc ); + const auto* altZone + = CalamaresUtils::Locale::find( distanceFunc( officialZone ), m_private->m_altZones, distanceFunc ); // If nothing was closer than the official zone already was, altZone is // nullptr; but if there is a spot-patch, then we need to re-find diff --git a/src/libcalamares/modulesystem/Module.cpp b/src/libcalamares/modulesystem/Module.cpp index ff0b20f78..94888f240 100644 --- a/src/libcalamares/modulesystem/Module.cpp +++ b/src/libcalamares/modulesystem/Module.cpp @@ -86,8 +86,7 @@ moduleConfigurationCandidates( bool assumeBuildDir, const QString& moduleName, c return paths; } -void -Module::loadConfigurationFile( const QString& configFileName ) //throws YAML::Exception +void Module::loadConfigurationFile( const QString& configFileName ) //throws YAML::Exception { QStringList configCandidates = moduleConfigurationCandidates( Settings::instance()->debugMode(), name(), configFileName ); diff --git a/src/libcalamares/modulesystem/RequirementsModel.cpp b/src/libcalamares/modulesystem/RequirementsModel.cpp index 5fd886864..9dfab0c8f 100644 --- a/src/libcalamares/modulesystem/RequirementsModel.cpp +++ b/src/libcalamares/modulesystem/RequirementsModel.cpp @@ -89,9 +89,8 @@ RequirementsModel::describe() const int count = 0; for ( const auto& r : m_requirements ) { - cDebug() << Logger::SubEntry << "requirement" << count << r.name - << "satisfied?" << r.satisfied - << "mandatory?" << r.mandatory; + cDebug() << Logger::SubEntry << "requirement" << count << r.name << "satisfied?" << r.satisfied << "mandatory?" + << r.mandatory; if ( r.mandatory && !r.satisfied ) { acceptable = false; diff --git a/src/libcalamares/partition/KPMManager.cpp b/src/libcalamares/partition/KPMManager.cpp index 6c49f8102..60a129951 100644 --- a/src/libcalamares/partition/KPMManager.cpp +++ b/src/libcalamares/partition/KPMManager.cpp @@ -62,7 +62,8 @@ InternalManager::InternalManager() else { auto* backend_p = CoreBackendManager::self()->backend(); - cDebug() << Logger::SubEntry << "Backend" << Logger::Pointer(backend_p) << backend_p->id() << backend_p->version(); + cDebug() << Logger::SubEntry << "Backend" << Logger::Pointer( backend_p ) << backend_p->id() + << backend_p->version(); s_kpm_loaded = true; } } diff --git a/src/libcalamares/utils/CalamaresUtilsSystem.cpp b/src/libcalamares/utils/CalamaresUtilsSystem.cpp index ff5590506..8be7a16f9 100644 --- a/src/libcalamares/utils/CalamaresUtilsSystem.cpp +++ b/src/libcalamares/utils/CalamaresUtilsSystem.cpp @@ -187,7 +187,8 @@ System::runCommand( System::RunLocation location, ? ( static_cast< int >( std::chrono::milliseconds( timeoutSec ).count() ) ) : -1 ) ) { - cWarning() << "Process" << args.first() << "timed out after" << timeoutSec.count() << "s. Output so far:\n" << Logger::NoQuote{} << process.readAllStandardOutput(); + cWarning() << "Process" << args.first() << "timed out after" << timeoutSec.count() << "s. Output so far:\n" + << Logger::NoQuote {} << process.readAllStandardOutput(); return ProcessResult::Code::TimedOut; } @@ -195,7 +196,7 @@ System::runCommand( System::RunLocation location, if ( process.exitStatus() == QProcess::CrashExit ) { - cWarning() << "Process" << args.first() << "crashed. Output so far:\n" << Logger::NoQuote{} << output; + cWarning() << "Process" << args.first() << "crashed. Output so far:\n" << Logger::NoQuote {} << output; return ProcessResult::Code::Crashed; } @@ -204,7 +205,8 @@ System::runCommand( System::RunLocation location, bool showDebug = ( !Calamares::Settings::instance() ) || ( Calamares::Settings::instance()->debugMode() ); if ( ( r != 0 ) || showDebug ) { - cDebug() << Logger::SubEntry << "Target cmd:" << RedactedList( args ) << "output:\n" << Logger::NoQuote{} << output; + cDebug() << Logger::SubEntry << "Target cmd:" << RedactedList( args ) << "output:\n" + << Logger::NoQuote {} << output; } return ProcessResult( r, output ); } diff --git a/src/libcalamares/utils/Tests.cpp b/src/libcalamares/utils/Tests.cpp index 644e03cf2..0d9892d76 100644 --- a/src/libcalamares/utils/Tests.cpp +++ b/src/libcalamares/utils/Tests.cpp @@ -412,7 +412,8 @@ LibCalamaresTests::testVariantStringListCode() m.insert( key, 17 ); QCOMPARE( getStringList( m, key ), QStringList {} ); m.insert( key, QString( "more strings" ) ); - QCOMPARE( getStringList( m, key ), QStringList { "more strings" } ); // A single string **can** be considered a stringlist! + QCOMPARE( getStringList( m, key ), + QStringList { "more strings" } ); // A single string **can** be considered a stringlist! m.insert( key, QVariant {} ); QCOMPARE( getStringList( m, key ), QStringList {} ); } diff --git a/src/libcalamares/utils/Traits.h b/src/libcalamares/utils/Traits.h index 1970aa833..8d7eda4a9 100644 --- a/src/libcalamares/utils/Traits.h +++ b/src/libcalamares/utils/Traits.h @@ -49,17 +49,30 @@ namespace CalamaresUtils */ namespace Traits { -template< class > struct sfinae_true : std::true_type{}; -} -} +template < class > +struct sfinae_true : std::true_type +{ +}; +} // namespace Traits +} // namespace CalamaresUtils -#define DECLARE_HAS_METHOD(m) \ - namespace CalamaresUtils { namespace Traits { \ - struct has_ ## m { \ - template< class T > static auto f(int) -> sfinae_true; \ - template< class T > static auto f(long) -> std::false_type; \ - template< class T > using t = decltype( f (0) ); \ - }; } } \ - template< class T > using has_ ## m = CalamaresUtils::Traits:: has_ ## m ::t; +#define DECLARE_HAS_METHOD( m ) \ + namespace CalamaresUtils \ + { \ + namespace Traits \ + { \ + struct has_##m \ + { \ + template < class T > \ + static auto f( int ) -> sfinae_true< decltype( &T::m ) >; \ + template < class T > \ + static auto f( long ) -> std::false_type; \ + template < class T > \ + using t = decltype( f< T >( 0 ) ); \ + }; \ + } \ + } \ + template < class T > \ + using has_##m = CalamaresUtils::Traits::has_##m ::t< T >; #endif diff --git a/src/libcalamares/utils/Variant.h b/src/libcalamares/utils/Variant.h index 60ff1ff01..e1261f877 100644 --- a/src/libcalamares/utils/Variant.h +++ b/src/libcalamares/utils/Variant.h @@ -38,7 +38,7 @@ DLLEXPORT QStringList getStringList( const QVariantMap& map, const QString& key, /** * Get an integer value from a mapping with a given key; returns @p d if no value. */ -DLLEXPORT qint64 getInteger( const QVariantMap& map, const QString& key, qint64 d = 0); +DLLEXPORT qint64 getInteger( const QVariantMap& map, const QString& key, qint64 d = 0 ); /** * Get an unsigned integer value from a mapping with a given key; returns @p d if no value. @@ -58,7 +58,10 @@ DLLEXPORT double getDouble( const QVariantMap& map, const QString& key, double d * Returns @p d if there is no such key or it is not a map-value. * (e.g. if @p success is false). */ -DLLEXPORT QVariantMap getSubMap( const QVariantMap& map, const QString& key, bool& success, const QVariantMap& d = QVariantMap() ); +DLLEXPORT QVariantMap getSubMap( const QVariantMap& map, + const QString& key, + bool& success, + const QVariantMap& d = QVariantMap() ); } // namespace CalamaresUtils #endif diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index efa455dea..8094e5223 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -180,7 +180,7 @@ ViewManager::onInstallationFailed( const QString& message, const QString& detail msgBox->show(); cDebug() << "Calamares will quit when the dialog closes."; - connect( msgBox, &QMessageBox::buttonClicked, [ msgBox ]( QAbstractButton* button ) { + connect( msgBox, &QMessageBox::buttonClicked, [msgBox]( QAbstractButton* button ) { if ( msgBox->buttonRole( button ) == QMessageBox::ButtonRole::YesRole ) { // TODO: host and port should be configurable diff --git a/src/libcalamaresui/modulesystem/ModuleFactory.cpp b/src/libcalamaresui/modulesystem/ModuleFactory.cpp index 7d4dd1960..a7193d3f5 100644 --- a/src/libcalamaresui/modulesystem/ModuleFactory.cpp +++ b/src/libcalamaresui/modulesystem/ModuleFactory.cpp @@ -48,7 +48,8 @@ moduleFromDescriptor( const Calamares::ModuleSystem::Descriptor& moduleDescripto std::unique_ptr< Module > m; - if ( !moduleDescriptor.isValid() ) { + if ( !moduleDescriptor.isValid() ) + { cError() << "Bad module descriptor format" << instanceId; return nullptr; } @@ -68,7 +69,9 @@ moduleFromDescriptor( const Calamares::ModuleSystem::Descriptor& moduleDescripto } else { - cError() << "Bad interface" << Calamares::ModuleSystem::interfaceNames().find( moduleDescriptor.interface() ) << "for module type" << Calamares::ModuleSystem::typeNames().find( moduleDescriptor.type() ); + cError() << "Bad interface" + << Calamares::ModuleSystem::interfaceNames().find( moduleDescriptor.interface() ) + << "for module type" << Calamares::ModuleSystem::typeNames().find( moduleDescriptor.type() ); } } else if ( moduleDescriptor.type() == Type::Job ) @@ -91,7 +94,9 @@ moduleFromDescriptor( const Calamares::ModuleSystem::Descriptor& moduleDescripto } else { - cError() << "Bad interface" << Calamares::ModuleSystem::interfaceNames().find( moduleDescriptor.interface() ) << "for module type" << Calamares::ModuleSystem::typeNames().find( moduleDescriptor.type() ); + cError() << "Bad interface" + << Calamares::ModuleSystem::interfaceNames().find( moduleDescriptor.interface() ) + << "for module type" << Calamares::ModuleSystem::typeNames().find( moduleDescriptor.type() ); } } else @@ -101,7 +106,9 @@ moduleFromDescriptor( const Calamares::ModuleSystem::Descriptor& moduleDescripto if ( !m ) { - cError() << "Bad module type (" << Calamares::ModuleSystem::typeNames().find( moduleDescriptor.type() ) << ") or interface string (" << Calamares::ModuleSystem::interfaceNames().find( moduleDescriptor.interface() ) << ") for module " + cError() << "Bad module type (" << Calamares::ModuleSystem::typeNames().find( moduleDescriptor.type() ) + << ") or interface string (" + << Calamares::ModuleSystem::interfaceNames().find( moduleDescriptor.interface() ) << ") for module " << instanceId; return nullptr; } diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index 9e84cf646..8c0f21f58 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -104,8 +104,9 @@ ModuleManager::doInit() if ( ok && !moduleName.isEmpty() && ( moduleName == currentDir.dirName() ) && !m_availableDescriptorsByModuleName.contains( moduleName ) ) { - auto descriptor = Calamares::ModuleSystem::Descriptor::fromDescriptorData( moduleDescriptorMap ); - descriptor.setDirectory(descriptorFileInfo.absoluteDir().absolutePath() ); + auto descriptor + = Calamares::ModuleSystem::Descriptor::fromDescriptorData( moduleDescriptorMap ); + descriptor.setDirectory( descriptorFileInfo.absoluteDir().absolutePath() ); m_availableDescriptorsByModuleName.insert( moduleName, descriptor ); } } @@ -243,11 +244,8 @@ ModuleManager::loadModules() } else { - thisModule - = Calamares::moduleFromDescriptor( descriptor, - instanceKey.id(), - configFileName, - descriptor.directory() ); + thisModule = Calamares::moduleFromDescriptor( + descriptor, instanceKey.id(), configFileName, descriptor.directory() ); if ( !thisModule ) { cError() << "Module" << instanceKey.toString() << "cannot be created from descriptor" @@ -375,8 +373,7 @@ ModuleManager::checkDependencies() for ( auto it = m_availableDescriptorsByModuleName.begin(); it != m_availableDescriptorsByModuleName.end(); ++it ) { - QStringList unmet = missingRequiredModules( it->requiredModules(), - m_availableDescriptorsByModuleName ); + QStringList unmet = missingRequiredModules( it->requiredModules(), m_availableDescriptorsByModuleName ); if ( unmet.count() > 0 ) { @@ -403,8 +400,7 @@ ModuleManager::checkModuleDependencies( const Module& m ) } bool allRequirementsFound = true; - QStringList requiredModules - = m_availableDescriptorsByModuleName[ m.name() ].requiredModules(); + QStringList requiredModules = m_availableDescriptorsByModuleName[ m.name() ].requiredModules(); for ( const QString& required : requiredModules ) { diff --git a/src/libcalamaresui/modulesystem/ProcessJobModule.cpp b/src/libcalamaresui/modulesystem/ProcessJobModule.cpp index 0414048ca..2671d0899 100644 --- a/src/libcalamaresui/modulesystem/ProcessJobModule.cpp +++ b/src/libcalamaresui/modulesystem/ProcessJobModule.cpp @@ -71,7 +71,7 @@ ProcessJobModule::ProcessJobModule() } -ProcessJobModule::~ProcessJobModule() { } +ProcessJobModule::~ProcessJobModule() {} } // namespace Calamares diff --git a/src/libcalamaresui/modulesystem/PythonJobModule.cpp b/src/libcalamaresui/modulesystem/PythonJobModule.cpp index 67223b655..20f8215d2 100644 --- a/src/libcalamaresui/modulesystem/PythonJobModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonJobModule.cpp @@ -67,7 +67,7 @@ PythonJobModule::PythonJobModule() } -PythonJobModule::~PythonJobModule() { } +PythonJobModule::~PythonJobModule() {} } // namespace Calamares diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp index 638fdfc79..ae2b2915f 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp @@ -179,6 +179,6 @@ PythonQtViewModule::PythonQtViewModule() { } -PythonQtViewModule::~PythonQtViewModule() { } +PythonQtViewModule::~PythonQtViewModule() {} } // namespace Calamares diff --git a/src/libcalamaresui/utils/ImageRegistry.cpp b/src/libcalamaresui/utils/ImageRegistry.cpp index 3fdecccef..ffc65300e 100644 --- a/src/libcalamaresui/utils/ImageRegistry.cpp +++ b/src/libcalamaresui/utils/ImageRegistry.cpp @@ -23,7 +23,7 @@ ImageRegistry::instance() } -ImageRegistry::ImageRegistry() { } +ImageRegistry::ImageRegistry() {} QIcon diff --git a/src/libcalamaresui/viewpages/BlankViewStep.cpp b/src/libcalamaresui/viewpages/BlankViewStep.cpp index 1fbeaeef0..ea51e3f02 100644 --- a/src/libcalamaresui/viewpages/BlankViewStep.cpp +++ b/src/libcalamaresui/viewpages/BlankViewStep.cpp @@ -53,7 +53,7 @@ BlankViewStep::BlankViewStep( const QString& title, m_widget->setLayout( layout ); } -BlankViewStep::~BlankViewStep() { } +BlankViewStep::~BlankViewStep() {} QString BlankViewStep::prettyName() const diff --git a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h index 2a8f6af99..5d1282d0f 100644 --- a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h +++ b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h @@ -31,7 +31,7 @@ class GlobalStorage : public QObject Q_OBJECT public: explicit GlobalStorage( Calamares::GlobalStorage* gs ); - virtual ~GlobalStorage() { } + virtual ~GlobalStorage() {} public slots: bool contains( const QString& key ) const; diff --git a/src/libcalamaresui/viewpages/PythonQtJob.h b/src/libcalamaresui/viewpages/PythonQtJob.h index 5d591c74e..4d48921e1 100644 --- a/src/libcalamaresui/viewpages/PythonQtJob.h +++ b/src/libcalamaresui/viewpages/PythonQtJob.h @@ -35,7 +35,7 @@ class PythonQtJob : public Calamares::Job { Q_OBJECT public: - virtual ~PythonQtJob() { } + virtual ~PythonQtJob() {} QString prettyName() const override; QString prettyDescription() const override; diff --git a/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h b/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h index e7c8c0660..e39249185 100644 --- a/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h +++ b/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.h @@ -24,7 +24,7 @@ class Utils : public QObject Q_OBJECT public: explicit Utils( QObject* parent = nullptr ); - virtual ~Utils() { } + virtual ~Utils() {} public slots: void debug( const QString& s ) const; diff --git a/src/libcalamaresui/viewpages/QmlViewStep.cpp b/src/libcalamaresui/viewpages/QmlViewStep.cpp index 4ea20ba32..17a1ea79c 100644 --- a/src/libcalamaresui/viewpages/QmlViewStep.cpp +++ b/src/libcalamaresui/viewpages/QmlViewStep.cpp @@ -79,7 +79,7 @@ QmlViewStep::QmlViewStep( QObject* parent ) // QML Loading starts when the configuration for the module is set. } -QmlViewStep::~QmlViewStep() { } +QmlViewStep::~QmlViewStep() {} QString QmlViewStep::prettyName() const diff --git a/src/libcalamaresui/viewpages/ViewStep.cpp b/src/libcalamaresui/viewpages/ViewStep.cpp index e76dc915b..26c7ee778 100644 --- a/src/libcalamaresui/viewpages/ViewStep.cpp +++ b/src/libcalamaresui/viewpages/ViewStep.cpp @@ -22,7 +22,7 @@ ViewStep::ViewStep( QObject* parent ) } -ViewStep::~ViewStep() { } +ViewStep::~ViewStep() {} QString diff --git a/src/libcalamaresui/widgets/ClickableLabel.cpp b/src/libcalamaresui/widgets/ClickableLabel.cpp index 4d2885813..be7b142f1 100644 --- a/src/libcalamaresui/widgets/ClickableLabel.cpp +++ b/src/libcalamaresui/widgets/ClickableLabel.cpp @@ -27,7 +27,7 @@ ClickableLabel::ClickableLabel( const QString& text, QWidget* parent ) } -ClickableLabel::~ClickableLabel() { } +ClickableLabel::~ClickableLabel() {} void diff --git a/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp b/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp index 1d496c27f..195aad67e 100644 --- a/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp +++ b/src/libcalamaresui/widgets/FixedAspectRatioLabel.cpp @@ -17,7 +17,7 @@ FixedAspectRatioLabel::FixedAspectRatioLabel( QWidget* parent ) } -FixedAspectRatioLabel::~FixedAspectRatioLabel() { } +FixedAspectRatioLabel::~FixedAspectRatioLabel() {} void diff --git a/src/libcalamaresui/widgets/PrettyRadioButton.h b/src/libcalamaresui/widgets/PrettyRadioButton.h index 67ef49ae6..6b158f353 100644 --- a/src/libcalamaresui/widgets/PrettyRadioButton.h +++ b/src/libcalamaresui/widgets/PrettyRadioButton.h @@ -38,7 +38,7 @@ class UIDLLEXPORT PrettyRadioButton : public QWidget Q_OBJECT public: explicit PrettyRadioButton( QWidget* parent = nullptr ); - virtual ~PrettyRadioButton() { } + virtual ~PrettyRadioButton() {} /// @brief Passes @p text on to the ClickableLabel void setText( const QString& text ); diff --git a/src/modules/preservefiles/PreserveFiles.cpp b/src/modules/preservefiles/PreserveFiles.cpp index 7fe9a97ae..8194b3221 100644 --- a/src/modules/preservefiles/PreserveFiles.cpp +++ b/src/modules/preservefiles/PreserveFiles.cpp @@ -202,7 +202,8 @@ PreserveFiles::setConfigurationMap( const QVariantMap& configurationMap ) { QString filename = li.toString(); if ( !filename.isEmpty() ) - m_items.append( Item { filename, filename, CalamaresUtils::Permissions( defaultPermissions ), ItemType::Path } ); + m_items.append( + Item { filename, filename, CalamaresUtils::Permissions( defaultPermissions ), ItemType::Path } ); else { cDebug() << "Empty filename for preservefiles, item" << c; diff --git a/src/modules/tracking/Tests.cpp b/src/modules/tracking/Tests.cpp index 661d83273..c3fe90ad1 100644 --- a/src/modules/tracking/Tests.cpp +++ b/src/modules/tracking/Tests.cpp @@ -8,8 +8,8 @@ #include "utils/Logger.h" -#include #include +#include class TrackingTests : public QObject { @@ -28,17 +28,17 @@ TrackingTests::TrackingTests() { } -TrackingTests::~TrackingTests() -{ -} +TrackingTests::~TrackingTests() {} -void TrackingTests::initTestCase() +void +TrackingTests::initTestCase() { Logger::setupLogLevel( Logger::LOGDEBUG ); cDebug() << "Tracking test started."; } -void TrackingTests::testEmptyConfig() +void +TrackingTests::testEmptyConfig() { Logger::setupLogLevel( Logger::LOGDEBUG ); diff --git a/src/modules/users/SetHostNameJob.cpp b/src/modules/users/SetHostNameJob.cpp index be86ad6ab..9f81ddfb5 100644 --- a/src/modules/users/SetHostNameJob.cpp +++ b/src/modules/users/SetHostNameJob.cpp @@ -16,11 +16,11 @@ #include "utils/CalamaresUtilsSystem.h" #include "utils/Logger.h" -#include -#include #include #include #include +#include +#include using WriteMode = CalamaresUtils::System::WriteMode; diff --git a/src/modules/users/Tests.cpp b/src/modules/users/Tests.cpp index c92391d21..78fa74780 100644 --- a/src/modules/users/Tests.cpp +++ b/src/modules/users/Tests.cpp @@ -106,15 +106,16 @@ UserTests::testDefaultGroups() } } -void UserTests::testDefaultGroupsYAML_data() +void +UserTests::testDefaultGroupsYAML_data() { QTest::addColumn< QString >( "filename" ); - QTest::addColumn< int >("count"); - QTest::addColumn("group"); + QTest::addColumn< int >( "count" ); + QTest::addColumn< QString >( "group" ); - QTest::newRow("users.conf") << "users.conf" << 7 << "video"; - QTest::newRow("dashed list") << "tests/4-audio.conf" << 4 << "audio"; - QTest::newRow("blocked list") << "tests/3-wing.conf" << 3 << "wing"; + QTest::newRow( "users.conf" ) << "users.conf" << 7 << "video"; + QTest::newRow( "dashed list" ) << "tests/4-audio.conf" << 4 << "audio"; + QTest::newRow( "blocked list" ) << "tests/3-wing.conf" << 3 << "wing"; } void @@ -125,23 +126,23 @@ UserTests::testDefaultGroupsYAML() (void)new Calamares::JobQueue(); } - QFETCH(QString, filename); - QFETCH(int, count); - QFETCH(QString, group); + QFETCH( QString, filename ); + QFETCH( int, count ); + QFETCH( QString, group ); - QFile fi( QString("%1/%2").arg(BUILD_AS_TEST, filename) ); - QVERIFY(fi.exists()); + QFile fi( QString( "%1/%2" ).arg( BUILD_AS_TEST, filename ) ); + QVERIFY( fi.exists() ); bool ok = false; - const auto map = CalamaresUtils::loadYaml(fi, &ok); - QVERIFY(ok); - QVERIFY(map.count() > 0); + const auto map = CalamaresUtils::loadYaml( fi, &ok ); + QVERIFY( ok ); + QVERIFY( map.count() > 0 ); - Config c; - c.setConfigurationMap(map); + Config c; + c.setConfigurationMap( map ); - QCOMPARE( c.defaultGroups().count(), count); - QVERIFY( c.defaultGroups().contains( group ) ); + QCOMPARE( c.defaultGroups().count(), count ); + QVERIFY( c.defaultGroups().contains( group ) ); } diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 2418b319e..8059b02e1 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -45,7 +45,8 @@ static inline void labelOk( QLabel* pix, QLabel* label ) { label->clear(); - pix->setPixmap( CalamaresUtils::defaultPixmap( CalamaresUtils::StatusOk, CalamaresUtils::Original, label->size() ) ); + pix->setPixmap( + CalamaresUtils::defaultPixmap( CalamaresUtils::StatusOk, CalamaresUtils::Original, label->size() ) ); } /** @brief Sets error or ok on a label depending on @p status and @p value diff --git a/src/modules/usersq/UsersQmlViewStep.cpp b/src/modules/usersq/UsersQmlViewStep.cpp index 15c542e38..b83c66f45 100644 --- a/src/modules/usersq/UsersQmlViewStep.cpp +++ b/src/modules/usersq/UsersQmlViewStep.cpp @@ -25,8 +25,8 @@ CALAMARES_PLUGIN_FACTORY_DEFINITION( UsersQmlViewStepFactory, registerPlugin< UsersQmlViewStep >(); ) UsersQmlViewStep::UsersQmlViewStep( QObject* parent ) -: Calamares::QmlViewStep( parent ) -, m_config( new Config(this) ) + : Calamares::QmlViewStep( parent ) + , m_config( new Config( this ) ) { connect( m_config, &Config::readyChanged, this, &UsersQmlViewStep::nextStatusChanged ); @@ -96,6 +96,6 @@ UsersQmlViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { m_config->setConfigurationMap( configurationMap ); - Calamares::QmlViewStep::setConfigurationMap( configurationMap ); // call parent implementation last + Calamares::QmlViewStep::setConfigurationMap( configurationMap ); // call parent implementation last setContextProperty( "Users", m_config ); } diff --git a/src/modules/usersq/UsersQmlViewStep.h b/src/modules/usersq/UsersQmlViewStep.h index b3d474e65..33a1f5754 100644 --- a/src/modules/usersq/UsersQmlViewStep.h +++ b/src/modules/usersq/UsersQmlViewStep.h @@ -19,8 +19,8 @@ #include -#include #include "Config.h" +#include class PLUGINDLLEXPORT UsersQmlViewStep : public Calamares::QmlViewStep { @@ -44,13 +44,10 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ) override; - QObject * getConfig() override - { - return m_config; - } + QObject* getConfig() override { return m_config; } private: - Config *m_config; + Config* m_config; Calamares::JobList m_jobs; }; diff --git a/src/modules/webview/WebViewStep.cpp b/src/modules/webview/WebViewStep.cpp index db8439775..3e3e99c21 100644 --- a/src/modules/webview/WebViewStep.cpp +++ b/src/modules/webview/WebViewStep.cpp @@ -8,8 +8,8 @@ * */ -#include "WebViewConfig.h" #include "WebViewStep.h" +#include "WebViewConfig.h" #include diff --git a/src/modules/welcome/WelcomePage.cpp b/src/modules/welcome/WelcomePage.cpp index ddceec4a3..aa9e9d7bb 100644 --- a/src/modules/welcome/WelcomePage.cpp +++ b/src/modules/welcome/WelcomePage.cpp @@ -39,7 +39,7 @@ WelcomePage::WelcomePage( Config* conf, QWidget* parent ) : QWidget( parent ) , ui( new Ui::WelcomePage ) - , m_checkingWidget( new CheckerContainer( *(conf->requirementsModel()), this ) ) + , m_checkingWidget( new CheckerContainer( *( conf->requirementsModel() ), this ) ) , m_languages( nullptr ) , m_conf( conf ) { diff --git a/src/modules/welcome/checker/GeneralRequirements.cpp b/src/modules/welcome/checker/GeneralRequirements.cpp index 66a9f5ed7..a10585af9 100644 --- a/src/modules/welcome/checker/GeneralRequirements.cpp +++ b/src/modules/welcome/checker/GeneralRequirements.cpp @@ -146,10 +146,8 @@ GeneralRequirements::checkRequirements() { checkEntries.append( { entry, - [ req = m_requiredStorageGiB ] { - return tr( "has at least %1 GiB available drive space" ).arg( req ); - }, - [ req = m_requiredStorageGiB ] { + [req = m_requiredStorageGiB] { return tr( "has at least %1 GiB available drive space" ).arg( req ); }, + [req = m_requiredStorageGiB] { return tr( "There is not enough drive space. At least %1 GiB is required." ).arg( req ); }, enoughStorage, @@ -159,8 +157,8 @@ GeneralRequirements::checkRequirements() { checkEntries.append( { entry, - [ req = m_requiredRamGiB ] { return tr( "has at least %1 GiB working memory" ).arg( req ); }, - [ req = m_requiredRamGiB ] { + [req = m_requiredRamGiB] { return tr( "has at least %1 GiB working memory" ).arg( req ); }, + [req = m_requiredRamGiB] { return tr( "The system does not have enough working memory. At least %1 GiB is required." ) .arg( req ); }, @@ -349,7 +347,7 @@ GeneralRequirements::checkEnoughRam( qint64 requiredRam ) // Ignore the guesstimate-factor; we get an under-estimate // which is probably the usable RAM for programs. quint64 availableRam = CalamaresUtils::System::instance()->getTotalMemoryB().first; - return double(availableRam) >= double(requiredRam) * 0.95; // cast to silence 64-bit-int conversion to double + return double( availableRam ) >= double( requiredRam ) * 0.95; // cast to silence 64-bit-int conversion to double } diff --git a/src/modules/welcome/checker/partman_devices.h b/src/modules/welcome/checker/partman_devices.h index 14d1edc75..c894f6534 100644 --- a/src/modules/welcome/checker/partman_devices.h +++ b/src/modules/welcome/checker/partman_devices.h @@ -11,13 +11,14 @@ #define PARTMAN_DEVICES_H #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif -int check_big_enough(long long required_space); + int check_big_enough( long long required_space ); #ifdef __cplusplus } // extern "C" #endif -#endif // PARTMAN_DEVICES_H +#endif // PARTMAN_DEVICES_H diff --git a/src/modules/welcomeq/WelcomeQmlViewStep.cpp b/src/modules/welcomeq/WelcomeQmlViewStep.cpp index bf30d9915..af32f2992 100644 --- a/src/modules/welcomeq/WelcomeQmlViewStep.cpp +++ b/src/modules/welcomeq/WelcomeQmlViewStep.cpp @@ -29,9 +29,9 @@ WelcomeQmlViewStep::WelcomeQmlViewStep( QObject* parent ) , m_requirementsChecker( new GeneralRequirements( this ) ) { connect( Calamares::ModuleManager::instance(), - &Calamares::ModuleManager::requirementsComplete, - this, - &WelcomeQmlViewStep::nextStatusChanged ); + &Calamares::ModuleManager::requirementsComplete, + this, + &WelcomeQmlViewStep::nextStatusChanged ); } From 7c08f9a03316ea10f44b8fb08f3ab431da2997c5 Mon Sep 17 00:00:00 2001 From: demmm Date: Wed, 26 Aug 2020 13:32:56 +0200 Subject: [PATCH 29/54] [keyboardq] rewrite keyboard.qml no longer use extra qml files better highlighting, updated text, fewer buttons --- src/modules/keyboardq/ListItemDelegate.qml | 63 --- src/modules/keyboardq/ListViewTemplate.qml | 22 - src/modules/keyboardq/ResponsiveBase.qml | 83 ---- src/modules/keyboardq/keyboardq.qml | 486 +++++++++++++++------ src/modules/keyboardq/keyboardq.qrc | 3 - 5 files changed, 347 insertions(+), 310 deletions(-) delete mode 100644 src/modules/keyboardq/ListItemDelegate.qml delete mode 100644 src/modules/keyboardq/ListViewTemplate.qml delete mode 100644 src/modules/keyboardq/ResponsiveBase.qml diff --git a/src/modules/keyboardq/ListItemDelegate.qml b/src/modules/keyboardq/ListItemDelegate.qml deleted file mode 100644 index 2ad10144c..000000000 --- a/src/modules/keyboardq/ListItemDelegate.qml +++ /dev/null @@ -1,63 +0,0 @@ -import io.calamares.ui 1.0 - -import QtQuick 2.10 -import QtQuick.Controls 2.10 -import QtQuick.Layouts 1.3 -import org.kde.kirigami 2.7 as Kirigami - -ItemDelegate { - - id: control - - - property alias label1 : _label1 - property alias label2 : _label2 - - hoverEnabled: true - - property bool isCurrentItem: ListView.isCurrentItem - background: Rectangle { - - color: isCurrentItem || hovered ? Kirigami.Theme.highlightColor : Kirigami.Theme.backgroundColor - opacity: isCurrentItem || hovered ? 0.8 : 0.5 - } - - width: 490 //parent.width - height: 36 - - contentItem: RowLayout { - - anchors.fill: parent - anchors.margins: Kirigami.Units.smallSpacing - - Label { - - id: _label1 - Layout.fillHeight: true - Layout.fillWidth: true - horizontalAlignment: Qt.AlignLeft - color: isCurrentItem ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor - } - - Label { - - id: _label2 - visible: text.length - Layout.fillHeight: true - Layout.maximumWidth: parent.width * 0.4 - horizontalAlignment: Qt.AlignRight - color: isCurrentItem ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor - opacity: isCurrentItem ? 1 : 0.7 - font.weight: Font.Light - } - - Kirigami.Icon { - - source: "checkmark" - Layout.preferredWidth: 22 - Layout.preferredHeight: 22 - color: Kirigami.Theme.highlightedTextColor - visible: isCurrentItem - } - } -} diff --git a/src/modules/keyboardq/ListViewTemplate.qml b/src/modules/keyboardq/ListViewTemplate.qml deleted file mode 100644 index 4564b887b..000000000 --- a/src/modules/keyboardq/ListViewTemplate.qml +++ /dev/null @@ -1,22 +0,0 @@ -import QtQuick 2.10 -import QtQuick.Controls 2.10 -import QtQuick.Layouts 1.3 -import org.kde.kirigami 2.7 as Kirigami - -ListView { - - id: control - - spacing: Kirigami.Units.smallSpacing - clip: true - boundsBehavior: Flickable.StopAtBounds - - Rectangle { - - z: parent.z - 1 - anchors.fill: parent - color: "#BDC3C7" - radius: 5 - opacity: 0.7 - } -} diff --git a/src/modules/keyboardq/ResponsiveBase.qml b/src/modules/keyboardq/ResponsiveBase.qml deleted file mode 100644 index 38fa15d1b..000000000 --- a/src/modules/keyboardq/ResponsiveBase.qml +++ /dev/null @@ -1,83 +0,0 @@ -import QtQuick 2.10 -import QtQuick.Controls 2.10 -import QtQuick.Layouts 1.3 -import org.kde.kirigami 2.7 as Kirigami -import QtGraphicalEffects 1.0 - -import io.calamares.ui 1.0 -import io.calamares.core 1.0 - -Page { - - id: control - width: 800 //parent.width - height: 550 //parent.height - - Kirigami.Theme.backgroundColor: "#FAFAFA" - Kirigami.Theme.textColor: "#1F1F1F" - - property string subtitle - property string message - - default property alias content : _content.data - property alias stackView: _stackView - - ColumnLayout { - - id: _content - - anchors.fill: parent - spacing: Kirigami.Units.smallSpacing * 5 - anchors.margins: Kirigami.Units.smallSpacing * 5 - anchors.bottomMargin: 20 - - Label { - - Layout.fillWidth: true - Layout.preferredHeight: Math.min(implicitHeight, 200) - horizontalAlignment: Qt.AlignHCenter - wrapMode: Text.NoWrap - elide: Text.ElideMiddle - text: control.title - color: Kirigami.Theme.textColor - font.bold: true - font.weight: Font.Bold - font.pointSize: 24 - } - - Label { - - Layout.fillWidth: true - Layout.preferredHeight: Math.min(implicitHeight, 200) - horizontalAlignment: Qt.AlignHCenter - wrapMode: Text.Wrap - elide: Text.ElideMiddle - text: control.subtitle - color: Kirigami.Theme.textColor - font.weight: Font.Light - font.pointSize: 12 - } - - Label { - - Layout.fillWidth: true - Layout.preferredHeight: Math.min(implicitHeight, 200) - horizontalAlignment: Qt.AlignHCenter - wrapMode: Text.Wrap - elide: Text.ElideMiddle - text: control.message - color: Kirigami.Theme.textColor - font.weight: Font.Light - font.pointSize: 10 - } - - StackView { - - id: _stackView - Layout.fillHeight: true - Layout.preferredWidth: parent.width - clip: true - } - - } -} diff --git a/src/modules/keyboardq/keyboardq.qml b/src/modules/keyboardq/keyboardq.qml index 613223a1c..8f8bf05d1 100644 --- a/src/modules/keyboardq/keyboardq.qml +++ b/src/modules/keyboardq/keyboardq.qml @@ -1,195 +1,403 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-License-Identifier: GPL-3.0-or-later + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +import io.calamares.core 1.0 import io.calamares.ui 1.0 import QtQuick 2.10 import QtQuick.Controls 2.10 +import QtQuick.Window 2.14 import QtQuick.Layouts 1.3 + import org.kde.kirigami 2.7 as Kirigami -ResponsiveBase { +Page { + width: 800 //parent.width + height: 500 - id: control + StackView { + id: stack + anchors.fill: parent + clip: true - title: stackView.currentItem.title - subtitle: stackView.currentItem.subtitle + initialItem: Item { + Label { - stackView.initialItem: Item { + id: header + anchors.horizontalCenter: parent.horizontalCenter + text: qsTr("Keyboard Model") + color: Kirigami.Theme.textColor + font.bold: true + font.weight: Font.Bold + font.pointSize: 24 + } - id: _keyboardModelsComponet + Label { - property string title: qsTr("Keyboard Model") - property string subtitle: qsTr("Pick your preferred keyboard model or use the default one based on the detected hardware") + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: header.bottom + color: Kirigami.Theme.textColor + horizontalAlignment: Text.AlignHCenter + width: parent.width / 1.5 + wrapMode: Text.WordWrap + text: qsTr("Click your preferred keyboard model to select layout and variant, or use the default one based on the detected hardware.") + } - ListViewTemplate { + ListView { - id: _keyboardModelListView + id: list1 - anchors.centerIn: parent - implicitWidth: Math.min(parent.width, 500) - implicitHeight: Math.min(contentHeight, 300) - currentIndex: model.currentIndex + ScrollBar.vertical: ScrollBar { - model: config.keyboardModelsModel - - delegate: ListItemDelegate { - - id: _delegate - label1.text: model.label - onClicked: { - - _keyboardModelListView.model.currentIndex = index - control.stackView.push(_keyboardLayoutsComponent) + active: true } - } - } - - ColumnLayout{ - - spacing: 2 - anchors.verticalCenter: parent.verticalCenter - - Button { - - icon.name: "view-refresh" - width: parent.width - onClicked: control.stackView.pop() - text: qsTr("Refresh") - } - - Button { - - Layout.fillWidth: true - text: qsTr("Layouts") - icon.name: "go-next" - onClicked: control.stackView.push(_keyboardLayoutsComponent) - } - } - } - - Component { - - id: _keyboardLayoutsComponent - - Item { - - property string title: qsTr("Keyboard Layout") - property string subtitle: config.prettyStatus - - ListViewTemplate { - - id: _layoutsListView + width: parent.width / 2 + height: 250 anchors.centerIn: parent - - implicitWidth: Math.min(parent.width, 500) - implicitHeight: Math.min(contentHeight, 300) - - currentIndex: model.currentIndex - - model: config.keyboardLayoutsModel - - delegate: ListItemDelegate { - - id: _delegate - label1.text: model.label - onClicked: { - - _layoutsListView.model.currentIndex = index - _layoutsListView.positionViewAtIndex(index, ListView.Center) - control.stackView.push(_keyboardVariantsComponent) - } - } - } - - ColumnLayout{ - + anchors.verticalCenterOffset: -30 + focus: true + clip: true + boundsBehavior: Flickable.StopAtBounds spacing: 2 - anchors.verticalCenter: parent.verticalCenter - Button { + Rectangle { - Layout.fillWidth: true - icon.name: "go-previous" - text: qsTr("Models") - onClicked: control.stackView.pop() + z: parent.z - 1 + anchors.fill: parent + color: "#BDC3C7" + radius: 5 + opacity: 0.7 } - Button { - - Layout.fillWidth: true - icon.name: "go-next" - text: qsTr("Variants") - onClicked: control.stackView.push(_keyboardVariantsComponent) - } - } - } - } - - Component { - - id: _keyboardVariantsComponent - - Item { - - property string title: qsTr("Keyboard Layout") - property string subtitle: config.prettyStatus - - ListViewTemplate { - - id: _variantsListView - - anchors.centerIn: parent - - implicitWidth: Math.min(parent.width, 500) - implicitHeight: Math.min(contentHeight, 300) + model: config.keyboardModelsModel + //model: ["Africa", "America", "Antarctica", "Arctic", "Asia", "Atlantic", "Australia", "Europe", "Indian", "Pacific"] currentIndex: model.currentIndex + delegate: ItemDelegate { - model: config.keyboardVariantsModel + hoverEnabled: true + width: parent.width + highlighted: ListView.isCurrentItem - delegate: ListItemDelegate { + RowLayout { + anchors.fill: parent + + Label { + + text: model.label // modelData + Layout.fillHeight: true + Layout.fillWidth: true + width: parent.width + height: 32 + color: highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor + + background: Rectangle { + + color: highlighted || hovered ? Kirigami.Theme.highlightColor : "white" //Kirigami.Theme.backgroundColor + opacity: highlighted || hovered ? 0.5 : 0.3 + } + } + + Kirigami.Icon { + + source: "checkmark" + Layout.preferredWidth: 22 + Layout.preferredHeight: 22 + color: Kirigami.Theme.highlightedTextColor + visible: highlighted + } + } - id: _delegate - label1.text: model.label onClicked: { - _variantsListView.model.currentIndex = index - _variantsListView.positionViewAtIndex(index, ListView.Center) + list1.model.currentIndex = index + stack.push(layoutsList) + list1.positionViewAtIndex(index, ListView.Center) } } } + } - ColumnLayout{ + Component { + id: layoutsList - anchors.verticalCenter: parent.verticalCenter - - Button { + Item { - Layout.fillWidth: true - text: qsTr("Layouts") - icon.name: "go-previous" - onClicked: control.stackView.pop() + Label { + + id: header + anchors.horizontalCenter: parent.horizontalCenter + text: qsTr("Keyboard Layout") + color: Kirigami.Theme.textColor + font.bold: true + font.weight: Font.Bold + font.pointSize: 24 + } + + Label { + + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: header.bottom + color: Kirigami.Theme.textColor + horizontalAlignment: Text.AlignHCenter + width: parent.width / 1.5 + wrapMode: Text.WordWrap + text: config.prettyStatus + //text: qsTr("Set keyboard model or use the default one based on the detected hardware.") + } + + ListView { + + id: list2 + + ScrollBar.vertical: ScrollBar { + + active: true + } + + width: parent.width / 2 + height: 250 + anchors.centerIn: parent + anchors.verticalCenterOffset: -30 + focus: true + clip: true + boundsBehavior: Flickable.StopAtBounds + spacing: 2 + + Rectangle { + + z: parent.z - 1 + anchors.fill: parent + color: "#BDC3C7" + radius: 5 + opacity: 0.7 + } + + model: config.keyboardLayoutsModel + //model: ["Brussels", "London", "Madrid", "New York", "Melbourne", "London", "Madrid", "New York", "Brussels", "London", "Madrid", "New York", "Brussels", "London", "Madrid", "New York"] + + currentIndex: model.currentIndex + delegate: ItemDelegate { + + hoverEnabled: true + width: parent.width + highlighted: ListView.isCurrentItem + + RowLayout { + anchors.fill: parent + + Label { + + text: model.label // modelData + Layout.fillHeight: true + Layout.fillWidth: true + width: parent.width + height: 30 + color: highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor + + background: Rectangle { + + color: highlighted || hovered ? Kirigami.Theme.highlightColor : "white" //Kirigami.Theme.backgroundColor + opacity: highlighted || hovered ? 0.5 : 0.3 + } + } + + Kirigami.Icon { + + source: "checkmark" + Layout.preferredWidth: 22 + Layout.preferredHeight: 22 + color: Kirigami.Theme.highlightedTextColor + visible: highlighted + } + } + + onClicked: { + + list2.model.currentIndex = index + stack.push(variantsList) + list2.positionViewAtIndex(index, ListView.Center) + } + } + } + + ColumnLayout { + + spacing: 2 + anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenterOffset: -30 + anchors.left: parent.left + anchors.leftMargin: parent.width / 15 + + Button { + + icon.name: "go-previous" + text: qsTr("Models") + onClicked: stack.pop() + } + + Button { + + icon.name: "go-next" + text: qsTr("Variants") + onClicked: stack.push(variantsList) + } } } } + Component { + id: variantsList + + Item { + + Label { + + id: header + anchors.horizontalCenter: parent.horizontalCenter + text: qsTr("Keyboard Variant") + color: Kirigami.Theme.textColor + font.bold: true + font.weight: Font.Bold + font.pointSize: 24 + } + + Label { + + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: header.bottom + color: Kirigami.Theme.textColor + horizontalAlignment: Text.AlignHCenter + width: parent.width / 1.5 + wrapMode: Text.WordWrap + text: config.prettyStatus + //text: qsTr("Variant keyboard model or use the default one based on the detected hardware.") + } + + ListView { + + id: list3 + + ScrollBar.vertical: ScrollBar { + + active: true + } + + width: parent.width / 2 + height: 250 + anchors.centerIn: parent + anchors.verticalCenterOffset: -30 + focus: true + clip: true + boundsBehavior: Flickable.StopAtBounds + spacing: 2 + + Rectangle { + + z: parent.z - 1 + anchors.fill: parent + color: "#BDC3C7" + radius: 5 + opacity: 0.7 + } + + model: config.keyboardVariantsModel + //model: ["Brussels", "London", "Madrid", "New York", "Melbourne", "London", "Madrid", "New York", "Brussels", "London", "Madrid", "New York", "Brussels", "London", "Madrid", "New York"] + + currentIndex: model.currentIndex + delegate: ItemDelegate { + + hoverEnabled: true + width: parent.width + highlighted: ListView.isCurrentItem + + RowLayout { + anchors.fill: parent + + Label { + + text: model.label //modelData + Layout.fillHeight: true + Layout.fillWidth: true + width: parent.width + height: 30 + color: highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor + + background: Rectangle { + + color: highlighted || hovered ? Kirigami.Theme.highlightColor : "white" //Kirigami.Theme.backgroundColor + opacity: highlighted || hovered ? 0.5 : 0.3 + } + } + + Kirigami.Icon { + + source: "checkmark" + Layout.preferredWidth: 22 + Layout.preferredHeight: 22 + color: Kirigami.Theme.highlightedTextColor + visible: highlighted + } + } + + onClicked: { + + list3.model.currentIndex = index + list3.positionViewAtIndex(index, ListView.Center) + } + } + } + + Button { + + Layout.fillWidth: true + anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenterOffset: -30 + anchors.left: parent.left + anchors.leftMargin: parent.width / 15 + icon.name: "go-previous" + text: qsTr("Layouts") + onClicked: stack.pop() + } + } + } } TextField { placeholderText: qsTr("Test your keyboard") - Layout.preferredHeight: 48 - Layout.maximumWidth: 500 - Layout.fillWidth: true - Layout.alignment: Qt.AlignCenter - color: control.Kirigami.Theme.textColor + height: 48 + width: parent.width / 1.5 + horizontalAlignment: TextInput.AlignHCenter + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom + anchors.bottomMargin: parent.height / 10 + color: "#1F1F1F" background:Rectangle { z: parent.z - 1 anchors.fill: parent color: "#BDC3C7" - radius: 5 + radius: 2 opacity: 0.3 } } diff --git a/src/modules/keyboardq/keyboardq.qrc b/src/modules/keyboardq/keyboardq.qrc index b2ee36ee5..492f6e213 100644 --- a/src/modules/keyboardq/keyboardq.qrc +++ b/src/modules/keyboardq/keyboardq.qrc @@ -3,8 +3,5 @@ ../keyboard/kbd-model-map ../keyboard/images/restore.png keyboardq.qml - ListItemDelegate.qml - ListViewTemplate.qml - ResponsiveBase.qml From 0572e9cafc0fe6f6692f14f6d0e275d64f7498e2 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Wed, 26 Aug 2020 13:54:11 +0200 Subject: [PATCH 30/54] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_de.ts | 27 +- lang/calamares_pt_BR.ts | 2 +- lang/calamares_te.ts | 3922 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 3938 insertions(+), 13 deletions(-) create mode 100644 lang/calamares_te.ts diff --git a/lang/calamares_de.ts b/lang/calamares_de.ts index a70360e82..bf2c4f635 100644 --- a/lang/calamares_de.ts +++ b/lang/calamares_de.ts @@ -717,7 +717,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Set timezone to %1/%2. - + Setze Zeitzone auf %1%2. @@ -802,7 +802,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. '%1' is not allowed as username. - + '%1' ist als Benutzername nicht erlaubt. @@ -827,7 +827,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. '%1' is not allowed as hostname. - + '%1' ist als Computername nicht erlaubt. @@ -2860,7 +2860,8 @@ Ausgabe: <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> Setup can continue, but some features might be disabled.</p> - + <p>Dieser Computer erfüllt einige empfohlene Bedingungen nicht für die Installation von %1.<br/> + Die Installation kann fortgesetzt werden, aber einige Funktionen könnten deaktiviert sein.</p> @@ -2971,13 +2972,15 @@ Ausgabe: <p>This computer does not satisfy the minimum requirements for installing %1.<br/> Installation cannot continue.</p> - + <p>Dieser Computer erfüllt die minimalen Bedingungen nicht für die Installation von %1.<br/> + Die Installation kan nicht fortgesetzt werden.</p> <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> Setup can continue, but some features might be disabled.</p> - + <p>Dieser Computer erfüllt einige empfohlene Bedingungen nicht für die Installation von %1.<br/> + Die Installation kann fortgesetzt werden, aber einige Funktionen könnten deaktiviert sein.</p> @@ -3443,28 +3446,28 @@ Ausgabe: KDE user feedback - + KDE Benutzer-Feedback Configuring KDE user feedback. - + Konfiguriere KDE Benutzer-Feedback. Error in KDE user feedback configuration. - + Fehler bei der Konfiguration des KDE Benutzer-Feedbacks. Could not configure KDE user feedback correctly, script error %1. - + Konnte KDE Benutzer-Feedback nicht korrekt konfigurieren, Skriptfehler %1. Could not configure KDE user feedback correctly, Calamares error %1. - + Konnte KDE Benutzer-Feedback nicht korrekt konfigurieren, Calamares-Fehler %1. @@ -3511,7 +3514,7 @@ Ausgabe: <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - + <html><head/><body><p>Hier klicken, um <span style=" font-weight:600;">keinerlei Informationen </span> über Ihre Installation zu senden.</p></body></html> diff --git a/lang/calamares_pt_BR.ts b/lang/calamares_pt_BR.ts index 9611c6005..7c7b65959 100644 --- a/lang/calamares_pt_BR.ts +++ b/lang/calamares_pt_BR.ts @@ -2323,7 +2323,7 @@ O instalador será fechado e todas as alterações serão perdidas. Choose a password to keep your account safe. - Escolha uma senha para mantar a sua conta segura. + Escolha uma senha para manter a sua conta segura. diff --git a/lang/calamares_te.ts b/lang/calamares_te.ts new file mode 100644 index 000000000..5ffd22999 --- /dev/null +++ b/lang/calamares_te.ts @@ -0,0 +1,3922 @@ + + + + + BootInfoWidget + + + The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. + + + + + This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. + + + + + This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. + + + + + BootLoaderModel + + + Master Boot Record of %1 + + + + + Boot Partition + + + + + System Partition + + + + + Do not install a boot loader + + + + + %1 (%2) + + + + + Calamares::BlankViewStep + + + Blank Page + + + + + Calamares::DebugWindow + + + Form + + + + + GlobalStorage + + + + + JobQueue + + + + + Modules + + + + + Type: + + + + + + none + + + + + Interface: + + + + + Tools + + + + + Reload Stylesheet + + + + + Widget Tree + + + + + Debug information + + + + + Calamares::ExecutionViewStep + + + Set up + + + + + Install + + + + + Calamares::FailJob + + + Job failed (%1) + + + + + Programmed job failure was explicitly requested. + + + + + Calamares::JobThread + + + Done + ముగించు + + + + Calamares::NamedJob + + + Example job (%1) + + + + + Calamares::ProcessJob + + + Run command '%1' in target system. + + + + + Run command '%1'. + + + + + Running command %1 %2 + + + + + Calamares::PythonJob + + + Running %1 operation. + + + + + Bad working directory path + + + + + Working directory %1 for python job %2 is not readable. + + + + + Bad main script file + + + + + Main script file %1 for python job %2 is not readable. + + + + + Boost.Python error in job "%1". + + + + + Calamares::QmlViewStep + + + Loading ... + + + + + QML Step <i>%1</i>. + + + + + Loading failed. + + + + + Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + + + + Waiting for %n module(s). + + + + + + + + (%n second(s)) + + + + + + + + System-requirements checking is complete. + + + + + Calamares::ViewManager + + + Setup Failed + + + + + Installation Failed + + + + + Would you like to paste the install log to the web? + + + + + Error + లోపం + + + + + &Yes + + + + + + &No + + + + + &Close + + + + + Install Log Paste URL + + + + + The upload was unsuccessful. No web-paste was done. + + + + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + Continue with setup? + + + + + Continue with installation? + + + + + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> + + + + + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> + + + + + &Set up now + + + + + &Install now + + + + + Go &back + + + + + &Set up + + + + + &Install + + + + + Setup is complete. Close the setup program. + + + + + The installation is complete. Close the installer. + + + + + Cancel setup without changing the system. + + + + + Cancel installation without changing the system. + + + + + &Next + + + + + &Back + + + + + &Done + + + + + &Cancel + + + + + Cancel setup? + + + + + Cancel installation? + + + + + Do you really want to cancel the current setup process? +The setup program will quit and all changes will be lost. + + + + + Do you really want to cancel the current install process? +The installer will quit and all changes will be lost. + + + + + CalamaresPython::Helper + + + Unknown exception type + + + + + unparseable Python error + + + + + unparseable Python traceback + + + + + Unfetchable Python error. + + + + + CalamaresUtils + + + Install log posted to: +%1 + + + + + CalamaresWindow + + + Show debug information + + + + + &Back + + + + + &Next + + + + + &Cancel + + + + + %1 Setup Program + + + + + %1 Installer + + + + + CheckerContainer + + + Gathering system information... + + + + + ChoicePage + + + Form + + + + + Select storage de&vice: + + + + + + + + Current: + + + + + After: + + + + + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. + + + + + Reuse %1 as home partition for %2. + + + + + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> + + + + + %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. + + + + + Boot loader location: + + + + + <strong>Select a partition to install on</strong> + + + + + An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. + + + + + The EFI system partition at %1 will be used for starting %2. + + + + + EFI system partition: + + + + + This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + + + + <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. + + + + + + + + <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. + + + + + + + + <strong>Replace a partition</strong><br/>Replaces a partition with %1. + + + + + This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + No Swap + + + + + Reuse Swap + + + + + Swap (no Hibernate) + + + + + Swap (with Hibernate) + + + + + Swap to file + + + + + ClearMountsJob + + + Clear mounts for partitioning operations on %1 + + + + + Clearing mounts for partitioning operations on %1. + + + + + Cleared all mounts for %1 + + + + + ClearTempMountsJob + + + Clear all temporary mounts. + + + + + Clearing all temporary mounts. + + + + + Cannot get list of temporary mounts. + + + + + Cleared all temporary mounts. + + + + + CommandList + + + + Could not run command. + + + + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. + + + + + Config + + + Set keyboard model to %1.<br/> + + + + + Set keyboard layout to %1/%2. + + + + + Set timezone to %1/%2. + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Network Installation. (Disabled: Incorrect configuration) + + + + + Network Installation. (Disabled: Received invalid groups data) + + + + + Network Installation. (Disabled: internal error) + + + + + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) + + + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + <h1>Welcome to the Calamares setup program for %1</h1> + + + + + <h1>Welcome to %1 setup</h1> + + + + + <h1>Welcome to the Calamares installer for %1</h1> + + + + + <h1>Welcome to the %1 installer</h1> + + + + + Your username is too long. + + + + + '%1' is not allowed as username. + + + + + Your username must start with a lowercase letter or underscore. + + + + + Only lowercase letters, numbers, underscore and hyphen are allowed. + + + + + Your hostname is too short. + + + + + Your hostname is too long. + + + + + '%1' is not allowed as hostname. + + + + + Only letters, numbers, underscore and hyphen are allowed. + + + + + ContextualProcessJob + + + Contextual Processes Job + + + + + CreatePartitionDialog + + + Create a Partition + + + + + Si&ze: + + + + + MiB + + + + + Partition &Type: + + + + + &Primary + + + + + E&xtended + + + + + Fi&le System: + + + + + LVM LV name + + + + + &Mount Point: + + + + + Flags: + + + + + En&crypt + + + + + Logical + + + + + Primary + + + + + GPT + + + + + Mountpoint already in use. Please select another one. + + + + + CreatePartitionJob + + + Create new %2MiB partition on %4 (%3) with file system %1. + + + + + Create new <strong>%2MiB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. + + + + + Creating new %1 partition on %2. + + + + + The installer failed to create partition on disk '%1'. + + + + + CreatePartitionTableDialog + + + Create Partition Table + + + + + Creating a new partition table will delete all existing data on the disk. + + + + + What kind of partition table do you want to create? + + + + + Master Boot Record (MBR) + + + + + GUID Partition Table (GPT) + + + + + CreatePartitionTableJob + + + Create new %1 partition table on %2. + + + + + Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). + + + + + Creating new %1 partition table on %2. + + + + + The installer failed to create a partition table on %1. + + + + + CreateUserJob + + + Create user %1 + + + + + Create user <strong>%1</strong>. + + + + + Creating user %1. + + + + + Cannot create sudoers file for writing. + + + + + Cannot chmod sudoers file. + + + + + CreateVolumeGroupDialog + + + Create Volume Group + + + + + CreateVolumeGroupJob + + + Create new volume group named %1. + + + + + Create new volume group named <strong>%1</strong>. + + + + + Creating new volume group named %1. + + + + + The installer failed to create a volume group named '%1'. + + + + + DeactivateVolumeGroupJob + + + + Deactivate volume group named %1. + + + + + Deactivate volume group named <strong>%1</strong>. + + + + + The installer failed to deactivate a volume group named %1. + + + + + DeletePartitionJob + + + Delete partition %1. + + + + + Delete partition <strong>%1</strong>. + + + + + Deleting partition %1. + + + + + The installer failed to delete partition %1. + + + + + DeviceInfoWidget + + + This device has a <strong>%1</strong> partition table. + + + + + This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. + + + + + This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. + + + + + <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. + + + + + <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. + + + + + The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. + + + + + DeviceModel + + + %1 - %2 (%3) + device[name] - size[number] (device-node[name]) + + + + + %1 - (%2) + device[name] - (device-node[name]) + + + + + DracutLuksCfgJob + + + Write LUKS configuration for Dracut to %1 + + + + + Skip writing LUKS configuration for Dracut: "/" partition is not encrypted + + + + + Failed to open %1 + + + + + DummyCppJob + + + Dummy C++ Job + + + + + EditExistingPartitionDialog + + + Edit Existing Partition + + + + + Content: + + + + + &Keep + + + + + Format + తుడిచివేయు + + + + Warning: Formatting the partition will erase all existing data. + హెచ్చరిక : తుడిచివేయటం వలన ఈ విభజనలోని సమాచారం మొత్తం పోతుంది + + + + &Mount Point: + + + + + Si&ze: + + + + + MiB + + + + + Fi&le System: + + + + + Flags: + + + + + Mountpoint already in use. Please select another one. + + + + + EncryptWidget + + + Form + + + + + En&crypt system + + + + + Passphrase + + + + + Confirm passphrase + + + + + + Please enter the same passphrase in both boxes. + + + + + FillGlobalStorageJob + + + Set partition information + విభజన సమాచారం ఏర్పాటు + + + + Install %1 on <strong>new</strong> %2 system partition. + + + + + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. + + + + + Install %2 on %3 system partition <strong>%1</strong>. + + + + + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. + + + + + Install boot loader on <strong>%1</strong>. + + + + + Setting up mount points. + + + + + FinishedPage + + + Form + + + + + &Restart now + + + + + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. + + + + + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the setup program.</p></body></html> + + + + + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. + + + + + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the installer.</p></body></html> + + + + + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. + + + + + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. + + + + + FinishedViewStep + + + Finish + + + + + Setup Complete + + + + + Installation Complete + + + + + The setup of %1 is complete. + + + + + The installation of %1 is complete. + + + + + FormatPartitionJob + + + Format partition %1 (file system: %2, size: %3 MiB) on %4. + + + + + Format <strong>%3MiB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. + + + + + Formatting partition %1 with file system %2. + + + + + The installer failed to format partition %1 on disk '%2'. + + + + + GeneralRequirements + + + has at least %1 GiB available drive space + + + + + There is not enough drive space. At least %1 GiB is required. + + + + + has at least %1 GiB working memory + + + + + The system does not have enough working memory. At least %1 GiB is required. + + + + + is plugged in to a power source + + + + + The system is not plugged in to a power source. + + + + + is connected to the Internet + + + + + The system is not connected to the Internet. + + + + + is running the installer as an administrator (root) + + + + + The setup program is not running with administrator rights. + + + + + The installer is not running with administrator rights. + + + + + has a screen large enough to show the whole installer + + + + + The screen is too small to display the setup program. + + + + + The screen is too small to display the installer. + + + + + HostInfoJob + + + Collecting information about your machine. + + + + + IDJob + + + + + + OEM Batch Identifier + + + + + Could not create directories <code>%1</code>. + + + + + Could not open file <code>%1</code>. + + + + + Could not write to file <code>%1</code>. + + + + + InitcpioJob + + + Creating initramfs with mkinitcpio. + + + + + InitramfsJob + + + Creating initramfs. + + + + + InteractiveTerminalPage + + + Konsole not installed + + + + + Please install KDE Konsole and try again! + + + + + Executing script: &nbsp;<code>%1</code> + + + + + InteractiveTerminalViewStep + + + Script + + + + + KeyboardPage + + + Set keyboard model to %1.<br/> + + + + + Set keyboard layout to %1/%2. + + + + + KeyboardQmlViewStep + + + Keyboard + + + + + KeyboardViewStep + + + Keyboard + + + + + LCLocaleDialog + + + System locale setting + + + + + The system locale setting affects the language and character set for some command line user interface elements.<br/>The current setting is <strong>%1</strong>. + + + + + &Cancel + + + + + &OK + + + + + LicensePage + + + Form + + + + + <h1>License Agreement</h1> + + + + + I accept the terms and conditions above. + + + + + Please review the End User License Agreements (EULAs). + + + + + This setup procedure will install proprietary software that is subject to licensing terms. + + + + + If you do not agree with the terms, the setup procedure cannot continue. + + + + + This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. + + + + + If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. + + + + + LicenseViewStep + + + License + + + + + LicenseWidget + + + URL: %1 + + + + + <strong>%1 driver</strong><br/>by %2 + %1 is an untranslatable product name, example: Creative Audigy driver + + + + + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> + %1 is usually a vendor name, example: Nvidia graphics driver + + + + + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1 package</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1</strong><br/><font color="Grey">by %2</font> + + + + + File: %1 + + + + + Hide license text + + + + + Show the license text + + + + + Open license agreement in browser. + + + + + LocalePage + + + Region: + + + + + Zone: + + + + + + &Change... + + + + + LocaleQmlViewStep + + + Location + + + + + LocaleViewStep + + + Location + + + + + LuksBootKeyFileJob + + + Configuring LUKS key file. + + + + + + No partitions are defined. + + + + + + + Encrypted rootfs setup error + + + + + Root partition %1 is LUKS but no passphrase has been set. + + + + + Could not create LUKS key file for root partition %1. + + + + + Could not configure LUKS key file on partition %1. + + + + + MachineIdJob + + + Generate machine-id. + + + + + Configuration Error + + + + + No root mount point is set for MachineId. + + + + + Map + + + Timezone: %1 + + + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + + + NetInstallViewStep + + + + Package selection + + + + + Office software + + + + + Office package + + + + + Browser software + + + + + Browser package + + + + + Web browser + + + + + Kernel + + + + + Services + + + + + Login + + + + + Desktop + + + + + Applications + + + + + Communication + + + + + Development + + + + + Office + + + + + Multimedia + + + + + Internet + + + + + Theming + + + + + Gaming + + + + + Utilities + + + + + NotesQmlViewStep + + + Notes + + + + + OEMPage + + + Ba&tch: + + + + + <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> + + + + + <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> + + + + + OEMViewStep + + + OEM Configuration + + + + + Set the OEM Batch Identifier to <code>%1</code>. + + + + + Offline + + + Timezone: %1 + + + + + To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below. + + + + + PWQ + + + Password is too short + + + + + Password is too long + + + + + Password is too weak + + + + + Memory allocation error when setting '%1' + + + + + Memory allocation error + + + + + The password is the same as the old one + + + + + The password is a palindrome + + + + + The password differs with case changes only + + + + + The password is too similar to the old one + + + + + The password contains the user name in some form + + + + + The password contains words from the real name of the user in some form + + + + + The password contains forbidden words in some form + + + + + The password contains less than %1 digits + + + + + The password contains too few digits + + + + + The password contains less than %1 uppercase letters + + + + + The password contains too few uppercase letters + + + + + The password contains less than %1 lowercase letters + + + + + The password contains too few lowercase letters + + + + + The password contains less than %1 non-alphanumeric characters + + + + + The password contains too few non-alphanumeric characters + + + + + The password is shorter than %1 characters + + + + + The password is too short + + + + + The password is just rotated old one + + + + + The password contains less than %1 character classes + + + + + The password does not contain enough character classes + + + + + The password contains more than %1 same characters consecutively + + + + + The password contains too many same characters consecutively + + + + + The password contains more than %1 characters of the same class consecutively + + + + + The password contains too many characters of the same class consecutively + + + + + The password contains monotonic sequence longer than %1 characters + + + + + The password contains too long of a monotonic character sequence + + + + + No password supplied + + + + + Cannot obtain random numbers from the RNG device + + + + + Password generation failed - required entropy too low for settings + + + + + The password fails the dictionary check - %1 + + + + + The password fails the dictionary check + + + + + Unknown setting - %1 + + + + + Unknown setting + + + + + Bad integer value of setting - %1 + + + + + Bad integer value + + + + + Setting %1 is not of integer type + + + + + Setting is not of integer type + + + + + Setting %1 is not of string type + + + + + Setting is not of string type + + + + + Opening the configuration file failed + + + + + The configuration file is malformed + + + + + Fatal failure + + + + + Unknown error + + + + + Password is empty + + + + + PackageChooserPage + + + Form + + + + + Product Name + + + + + TextLabel + + + + + Long Product Description + + + + + Package Selection + + + + + Please pick a product from the list. The selected product will be installed. + + + + + PackageChooserViewStep + + + Packages + + + + + PackageModel + + + Name + + + + + Description + + + + + Page_Keyboard + + + Form + + + + + Keyboard Model: + + + + + Type here to test your keyboard + + + + + Page_UserSetup + + + Form + + + + + What is your name? + మీ పేరు ఏమిటి ? + + + + Your Full Name + + + + + What name do you want to use to log in? + ప్రవేశించడానికి ఈ పేరుని ఉపయోగిస్తారు + + + + login + + + + + What is the name of this computer? + + + + + <small>This name will be used if you make the computer visible to others on a network.</small> + + + + + Computer Name + + + + + Choose a password to keep your account safe. + మీ ఖాతా ను భద్రపరుచుకోవడానికి ఒక మంత్రమును ఎంచుకోండి + + + + + <small>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</small> + అదే మంత్రిని మళ్ళీ ఇక్కడ ఇవ్వండి, దానివలన మీరు పైన ఇచ్చిన దాంట్లో ఏమి అయినా దోషములు ఉంటే సరిదిద్దుకోవచ్చు. ఒక మంచి మంత్రంలో, ఒక అక్షరము, ఒక సంఖ్యా, ఒక విరామచిహ్నం, ఉండాలి. అది కనీసం ఎనిమిది అక్షరాలా పొడవు ఉండాలి. దీనిని కొన్ని వారాలు కానీ నెలలకు కానీ మార్చాలి. + + + + + Password + + + + + + Repeat Password + + + + + When this box is checked, password-strength checking is done and you will not be able to use a weak password. + + + + + Require strong passwords. + + + + + Log in automatically without asking for the password. + + + + + Use the same password for the administrator account. + + + + + Choose a password for the administrator account. + + + + + + <small>Enter the same password twice, so that it can be checked for typing errors.</small> + + + + + PartitionLabelsView + + + Root + + + + + Home + + + + + Boot + + + + + EFI system + + + + + Swap + + + + + New partition for %1 + + + + + New partition + + + + + %1 %2 + size[number] filesystem[name] + + + + + PartitionModel + + + + Free Space + + + + + + New partition + + + + + Name + + + + + File System + + + + + Mount Point + + + + + Size + + + + + PartitionPage + + + Form + + + + + Storage de&vice: + + + + + &Revert All Changes + + + + + New Partition &Table + + + + + Cre&ate + + + + + &Edit + + + + + &Delete + + + + + New Volume Group + + + + + Resize Volume Group + + + + + Deactivate Volume Group + + + + + Remove Volume Group + + + + + I&nstall boot loader on: + + + + + Are you sure you want to create a new partition table on %1? + + + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + + + + PartitionViewStep + + + Gathering system information... + + + + + Partitions + + + + + Install %1 <strong>alongside</strong> another operating system. + + + + + <strong>Erase</strong> disk and install %1. + + + + + <strong>Replace</strong> a partition with %1. + + + + + <strong>Manual</strong> partitioning. + + + + + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). + + + + + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. + + + + + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. + + + + + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). + + + + + Disk <strong>%1</strong> (%2) + + + + + Current: + + + + + After: + + + + + No EFI system partition configured + + + + + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>%3</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. + + + + + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. + + + + + EFI system partition flag not set + + + + + Option to use GPT on BIOS + + + + + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. + + + + + Boot partition not encrypted + + + + + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. + + + + + has at least one disk device available. + + + + + There are no partitions to install on. + + + + + PlasmaLnfJob + + + Plasma Look-and-Feel Job + + + + + + Could not select KDE Plasma Look-and-Feel package + + + + + PlasmaLnfPage + + + Form + + + + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + PlasmaLnfViewStep + + + Look-and-Feel + + + + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + + + ProcessResult + + + +There was no output from the command. + + + + + +Output: + + + + + + External command crashed. + + + + + Command <i>%1</i> crashed. + + + + + External command failed to start. + + + + + Command <i>%1</i> failed to start. + + + + + Internal error when starting command. + + + + + Bad parameters for process job call. + + + + + External command failed to finish. + + + + + Command <i>%1</i> failed to finish in %2 seconds. + + + + + External command finished with errors. + + + + + Command <i>%1</i> finished with exit code %2. + + + + + QObject + + + %1 (%2) + + + + + unknown + + + + + extended + + + + + unformatted + + + + + swap + + + + + Default Keyboard Model + + + + + + Default + + + + + + + + File not found + + + + + Path <pre>%1</pre> must be an absolute path. + + + + + Could not create new random file <pre>%1</pre>. + + + + + No product + + + + + No description provided. + + + + + (no mount point) + + + + + Unpartitioned space or unknown partition table + + + + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + + + RemoveUserJob + + + Remove live user from target system + + + + + RemoveVolumeGroupJob + + + + Remove Volume Group named %1. + + + + + Remove Volume Group named <strong>%1</strong>. + + + + + The installer failed to remove a volume group named '%1'. + + + + + ReplaceWidget + + + Form + + + + + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. + + + + + The selected item does not appear to be a valid partition. + + + + + %1 cannot be installed on empty space. Please select an existing partition. + + + + + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. + + + + + %1 cannot be installed on this partition. + + + + + Data partition (%1) + + + + + Unknown system partition (%1) + + + + + %1 system partition (%2) + + + + + <strong>%4</strong><br/><br/>The partition %1 is too small for %2. Please select a partition with capacity at least %3 GiB. + + + + + <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. + + + + + + + <strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost. + + + + + The EFI system partition at %1 will be used for starting %2. + + + + + EFI system partition: + + + + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + + + ResizeFSJob + + + Resize Filesystem Job + + + + + Invalid configuration + + + + + The file-system resize job has an invalid configuration and will not run. + + + + + KPMCore not Available + + + + + Calamares cannot start KPMCore for the file-system resize job. + + + + + + + + + Resize Failed + + + + + The filesystem %1 could not be found in this system, and cannot be resized. + + + + + The device %1 could not be found in this system, and cannot be resized. + + + + + + The filesystem %1 cannot be resized. + + + + + + The device %1 cannot be resized. + + + + + The filesystem %1 must be resized, but cannot. + + + + + The device %1 must be resized, but cannot + + + + + ResizePartitionJob + + + Resize partition %1. + + + + + Resize <strong>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>. + + + + + Resizing %2MiB partition %1 to %3MiB. + + + + + The installer failed to resize partition %1 on disk '%2'. + + + + + ResizeVolumeGroupDialog + + + Resize Volume Group + + + + + ResizeVolumeGroupJob + + + + Resize volume group named %1 from %2 to %3. + + + + + Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>. + + + + + The installer failed to resize a volume group named '%1'. + + + + + ResultsListDialog + + + For best results, please ensure that this computer: + + + + + System requirements + + + + + ResultsListWidget + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + ScanningDialog + + + Scanning storage devices... + + + + + Partitioning + + + + + SetHostNameJob + + + Set hostname %1 + + + + + Set hostname <strong>%1</strong>. + + + + + Setting hostname %1. + + + + + + Internal Error + + + + + + Cannot write hostname to target system + + + + + SetKeyboardLayoutJob + + + Set keyboard model to %1, layout to %2-%3 + + + + + Failed to write keyboard configuration for the virtual console. + + + + + + + Failed to write to %1 + + + + + Failed to write keyboard configuration for X11. + + + + + Failed to write keyboard configuration to existing /etc/default directory. + + + + + SetPartFlagsJob + + + Set flags on partition %1. + + + + + Set flags on %1MiB %2 partition. + + + + + Set flags on new partition. + + + + + Clear flags on partition <strong>%1</strong>. + + + + + Clear flags on %1MiB <strong>%2</strong> partition. + + + + + Clear flags on new partition. + + + + + Flag partition <strong>%1</strong> as <strong>%2</strong>. + + + + + Flag %1MiB <strong>%2</strong> partition as <strong>%3</strong>. + + + + + Flag new partition as <strong>%1</strong>. + + + + + Clearing flags on partition <strong>%1</strong>. + + + + + Clearing flags on %1MiB <strong>%2</strong> partition. + + + + + Clearing flags on new partition. + + + + + Setting flags <strong>%2</strong> on partition <strong>%1</strong>. + + + + + Setting flags <strong>%3</strong> on %1MiB <strong>%2</strong> partition. + + + + + Setting flags <strong>%1</strong> on new partition. + + + + + The installer failed to set flags on partition %1. + + + + + SetPasswordJob + + + Set password for user %1 + + + + + Setting password for user %1. + + + + + Bad destination system path. + + + + + rootMountPoint is %1 + + + + + Cannot disable root account. + + + + + passwd terminated with error code %1. + + + + + Cannot set password for user %1. + + + + + usermod terminated with error code %1. + + + + + SetTimezoneJob + + + Set timezone to %1/%2 + + + + + Cannot access selected timezone path. + + + + + Bad path: %1 + + + + + Cannot set timezone. + + + + + Link creation failed, target: %1; link name: %2 + + + + + Cannot set timezone, + + + + + Cannot open /etc/timezone for writing + + + + + ShellProcessJob + + + Shell Processes Job + + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + + + SummaryPage + + + This is an overview of what will happen once you start the setup procedure. + + + + + This is an overview of what will happen once you start the install procedure. + + + + + SummaryViewStep + + + Summary + + + + + TrackingInstallJob + + + Installation feedback + + + + + Sending installation feedback. + + + + + Internal error in install-tracking. + + + + + HTTP request timed out. + + + + + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + + Machine feedback + + + + + Configuring machine feedback. + + + + + + Error in machine feedback configuration. + + + + + Could not configure machine feedback correctly, script error %1. + + + + + Could not configure machine feedback correctly, Calamares error %1. + + + + + TrackingPage + + + Form + + + + + Placeholder + + + + + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + + + + + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> + + + + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + + + + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + + + + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + + + + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + + + + + TrackingViewStep + + + Feedback + + + + + UsersPage + + + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> + + + + + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> + + + + + Your passwords do not match! + + + + + UsersViewStep + + + Users + + + + + VariantModel + + + Key + + + + + Value + + + + + VolumeGroupBaseDialog + + + Create Volume Group + + + + + List of Physical Volumes + + + + + Volume Group Name: + + + + + Volume Group Type: + + + + + Physical Extent Size: + + + + + MiB + + + + + Total Size: + + + + + Used Size: + + + + + Total Sectors: + + + + + Quantity of LVs: + + + + + WelcomePage + + + Form + + + + + + Select application and system language + + + + + &About + + + + + Open donations website + + + + + &Donate + + + + + Open help and support website + + + + + &Support + + + + + Open issues and bug-tracking website + + + + + &Known issues + + + + + Open release notes website + + + + + &Release notes + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + %1 support + + + + + About %1 setup + + + + + About %1 installer + + + + + <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. + + + + + WelcomeQmlViewStep + + + Welcome + + + + + WelcomeViewStep + + + Welcome + + + + + about + + + <h1>%1</h1><br/> + <strong>%2<br/> + for %3</strong><br/><br/> + Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/> + Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Thanks to <a href='https://calamares.io/team/'>the Calamares team</a> + and the <a href='https://www.transifex.com/calamares/calamares/'>Calamares + translators team</a>.<br/><br/> + <a href='https://calamares.io/'>Calamares</a> + development is sponsored by <br/> + <a href='http://www.blue-systems.com/'>Blue Systems</a> - + Liberating Software. + + + + + Back + + + + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the numbers and dates format. The current setting is <strong>%1</strong>. + + + + + Back + + + + + keyboardq + + + Keyboard Model + + + + + Pick your preferred keyboard model or use the default one based on the detected hardware + + + + + Refresh + + + + + + Layouts + + + + + + Keyboard Layout + + + + + Models + + + + + Variants + + + + + Test your keyboard + + + + + localeq + + + Change + + + + + notesqml + + + <h3>%1</h3> + <p>These are example release notes.</p> + + + + + release_notes + + + <h3>%1</h3> + <p>This an example QML file, showing options in RichText with Flickable content.</p> + + <p>QML with RichText can use HTML tags, Flickable content is useful for touchscreens.</p> + + <p><b>This is bold text</b></p> + <p><i>This is italic text</i></p> + <p><u>This is underlined text</u></p> + <p><center>This text will be center-aligned.</center></p> + <p><s>This is strikethrough</s></p> + + <p>Code example: + <code>ls -l /home</code></p> + + <p><b>Lists:</b></p> + <ul> + <li>Intel CPU systems</li> + <li>AMD CPU systems</li> + </ul> + + <p>The vertical scrollbar is adjustable, current width set to 10.</p> + + + + + Back + + + + + welcomeq + + + <h3>Welcome to the %1 <quote>%2</quote> installer</h3> + <p>This program will ask you some questions and set up %1 on your computer.</p> + + + + + About + + + + + Support + + + + + Known issues + + + + + Release notes + + + + + Donate + + + + From 55dca08c8cc58aadcdef08e97bd8b8dbb02c96cc Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Wed, 26 Aug 2020 13:54:12 +0200 Subject: [PATCH 31/54] i18n: [python] Automatic merge of Transifex translations --- lang/python/te/LC_MESSAGES/python.mo | Bin 0 -> 379 bytes lang/python/te/LC_MESSAGES/python.po | 339 +++++++++++++++++++++++++++ 2 files changed, 339 insertions(+) create mode 100644 lang/python/te/LC_MESSAGES/python.mo create mode 100644 lang/python/te/LC_MESSAGES/python.po diff --git a/lang/python/te/LC_MESSAGES/python.mo b/lang/python/te/LC_MESSAGES/python.mo new file mode 100644 index 0000000000000000000000000000000000000000..3efc124053cac143f1c1109c70e7d3cbac2ea62a GIT binary patch literal 379 zcmYL@-%i3X6vi=n)l09vsEHR4J!^+XN69V_harkAIJvK*jGC=o+D`C6d_AAVP80Z& zU(Pu>|GuBolkbk#k>|{F;W_qPd0IuDk#7!sY-jdLjs6h1gXs#E!dR&l!|7=JGYHb|MY#~>0-xL-y%`i&mun?cJ-GK-01jBtA-T{q(4sb}>_01*qLeE?k z4KD;_f>#V@qHKx=cQ?+}mJzbuZUbkyvT`kUL9Q#3^O9HG2uqybu%u7vZRm5-L$m2D zIT#HCipE+wp&VpiwRhme&XKz0QVnsw;l>IVzhx7M4s-3RwJ?yVT(6`m7>?eh+q-OU hptNiZFJYohWf@lWUuon15dWufSK;#*hrJ={`~oHxYV`mB literal 0 HcmV?d00001 diff --git a/lang/python/te/LC_MESSAGES/python.po b/lang/python/te/LC_MESSAGES/python.po new file mode 100644 index 000000000..5ab3e4924 --- /dev/null +++ b/lang/python/te/LC_MESSAGES/python.po @@ -0,0 +1,339 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-08-09 20:56+0200\n" +"PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Language-Team: Telugu (https://www.transifex.com/calamares/teams/20061/te/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: te\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/modules/grubcfg/main.py:37 +msgid "Configure GRUB." +msgstr "" + +#: src/modules/mount/main.py:38 +msgid "Mounting partitions." +msgstr "" + +#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:205 +#: src/modules/initcpiocfg/main.py:209 +#: src/modules/luksopenswaphookcfg/main.py:95 +#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:173 +#: src/modules/initramfscfg/main.py:94 src/modules/initramfscfg/main.py:98 +#: src/modules/openrcdmcryptcfg/main.py:78 +#: src/modules/openrcdmcryptcfg/main.py:82 src/modules/fstab/main.py:332 +#: src/modules/fstab/main.py:338 src/modules/localecfg/main.py:144 +#: src/modules/networkcfg/main.py:48 +msgid "Configuration Error" +msgstr "" + +#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:206 +#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:174 +#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79 +#: src/modules/fstab/main.py:333 +msgid "No partitions are defined for
    {!s}
    to use." +msgstr "" + +#: src/modules/services-systemd/main.py:35 +msgid "Configure systemd services" +msgstr "" + +#: src/modules/services-systemd/main.py:68 +#: src/modules/services-openrc/main.py:102 +msgid "Cannot modify service" +msgstr "" + +#: src/modules/services-systemd/main.py:69 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:72 +#: src/modules/services-systemd/main.py:76 +msgid "Cannot enable systemd service {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:74 +msgid "Cannot enable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:78 +msgid "Cannot disable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:80 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:82 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + +#: src/modules/unpackfs/main.py:44 +msgid "Filling up filesystems." +msgstr "" + +#: src/modules/unpackfs/main.py:257 +msgid "rsync failed with error code {}." +msgstr "" + +#: src/modules/unpackfs/main.py:302 +msgid "Unpacking image {}/{}, file {}/{}" +msgstr "" + +#: src/modules/unpackfs/main.py:317 +msgid "Starting to unpack {}" +msgstr "" + +#: src/modules/unpackfs/main.py:326 src/modules/unpackfs/main.py:448 +msgid "Failed to unpack image \"{}\"" +msgstr "" + +#: src/modules/unpackfs/main.py:415 +msgid "No mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:416 +msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:421 +msgid "Bad mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:422 +msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:438 src/modules/unpackfs/main.py:442 +#: src/modules/unpackfs/main.py:462 +msgid "Bad unsquash configuration" +msgstr "" + +#: src/modules/unpackfs/main.py:439 +msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" +msgstr "" + +#: src/modules/unpackfs/main.py:443 +msgid "The source filesystem \"{}\" does not exist" +msgstr "" + +#: src/modules/unpackfs/main.py:449 +msgid "" +"Failed to find unsquashfs, make sure you have the squashfs-tools package " +"installed" +msgstr "" + +#: src/modules/unpackfs/main.py:463 +msgid "The destination \"{}\" in the target system is not a directory" +msgstr "" + +#: src/modules/displaymanager/main.py:523 +msgid "Cannot write KDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:524 +msgid "KDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:585 +msgid "Cannot write LXDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:586 +msgid "LXDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:669 +msgid "Cannot write LightDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:670 +msgid "LightDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:744 +msgid "Cannot configure LightDM" +msgstr "" + +#: src/modules/displaymanager/main.py:745 +msgid "No LightDM greeter installed." +msgstr "" + +#: src/modules/displaymanager/main.py:776 +msgid "Cannot write SLIM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:777 +msgid "SLIM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:903 +msgid "No display managers selected for the displaymanager module." +msgstr "" + +#: src/modules/displaymanager/main.py:904 +msgid "" +"The displaymanagers list is empty or undefined in bothglobalstorage and " +"displaymanager.conf." +msgstr "" + +#: src/modules/displaymanager/main.py:986 +msgid "Display manager configuration was incomplete" +msgstr "" + +#: src/modules/initcpiocfg/main.py:37 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:210 +#: src/modules/luksopenswaphookcfg/main.py:100 +#: src/modules/initramfscfg/main.py:99 src/modules/openrcdmcryptcfg/main.py:83 +#: src/modules/fstab/main.py:339 src/modules/localecfg/main.py:145 +#: src/modules/networkcfg/main.py:49 +msgid "No root mount point is given for
    {!s}
    to use." +msgstr "" + +#: src/modules/luksopenswaphookcfg/main.py:35 +msgid "Configuring encrypted swap." +msgstr "" + +#: src/modules/rawfs/main.py:35 +msgid "Installing data." +msgstr "" + +#: src/modules/services-openrc/main.py:38 +msgid "Configure OpenRC services" +msgstr "" + +#: src/modules/services-openrc/main.py:66 +msgid "Cannot add service {name!s} to run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:68 +msgid "Cannot remove service {name!s} from run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:70 +msgid "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:103 +msgid "" +"rc-update {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:110 +msgid "Target runlevel does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:111 +msgid "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/services-openrc/main.py:119 +msgid "Target service does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:120 +msgid "" +"The path for service {name!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/plymouthcfg/main.py:36 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:59 src/modules/packages/main.py:68 +#: src/modules/packages/main.py:78 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:66 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/packages/main.py:74 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/bootloader/main.py:51 +msgid "Install bootloader." +msgstr "" + +#: src/modules/hwclock/main.py:35 +msgid "Setting hardware clock." +msgstr "" + +#: src/modules/dracut/main.py:36 +msgid "Creating initramfs with dracut." +msgstr "" + +#: src/modules/dracut/main.py:58 +msgid "Failed to run dracut on the target" +msgstr "" + +#: src/modules/dracut/main.py:59 +msgid "The exit code was {}" +msgstr "" + +#: src/modules/initramfscfg/main.py:41 +msgid "Configuring initramfs." +msgstr "" + +#: src/modules/openrcdmcryptcfg/main.py:34 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" + +#: src/modules/fstab/main.py:38 +msgid "Writing fstab." +msgstr "" + +#: src/modules/dummypython/main.py:44 +msgid "Dummy python job." +msgstr "" + +#: src/modules/dummypython/main.py:46 src/modules/dummypython/main.py:102 +#: src/modules/dummypython/main.py:103 +msgid "Dummy python step {}" +msgstr "" + +#: src/modules/localecfg/main.py:39 +msgid "Configuring locales." +msgstr "" + +#: src/modules/networkcfg/main.py:37 +msgid "Saving network configuration." +msgstr "" From fd384f334d8ed6725ff818956959b61674b3c327 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 14:21:33 +0200 Subject: [PATCH 32/54] CMake: update translation lists - Add Telugu already, even though it's formally not ready yet --- CMakeLists.txt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e95dad8b..b82c116c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,13 +140,14 @@ set( CALAMARES_DESCRIPTION_SUMMARY # NOTE: update these lines by running `txstats.py`, or for full automation # `txstats.py -e`. See also # -# Total 68 languages -set( _tx_complete ca fi_FI he hr nl pt_BR sq tg tr_TR uk zh_TW ) -set( _tx_good as ast az az_AZ be cs_CZ da de es fr hi hu it_IT ja - ko lt ml pt_PT ru sk sv zh_CN ) -set( _tx_ok ar bg el en_GB es_MX es_PR et eu fa gl id is mr nb - pl ro sl sr sr@latin th ) -set( _tx_incomplete bn ca@valencia eo fr_CH gu ie kk kn lo lv mk ne_NP +# Total 69 languages +set( _tx_complete az az_AZ ca cs_CZ da fi_FI he hi hr ja nl pt_BR + sq sv tg tr_TR uk zh_TW ) +set( _tx_good as ast be de es fr hu it_IT ko lt ml pt_PT ru sk + zh_CN ) +set( _tx_ok ar bg bn el en_GB es_MX es_PR et eu fa gl id is mr nb + pl ro sl sr sr@latin te th ) +set( _tx_incomplete ca@valencia eo fr_CH gu ie kk kn lo lv mk ne_NP ur uz ) ### Required versions From ae14059e8b0d42dc3c12f7a9b01e2aa462729a40 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 Aug 2020 14:48:23 +0200 Subject: [PATCH 33/54] [webview] Config header was still misplaced - use #error to produce slightly more comprehensible build failers --- src/modules/webview/WebViewStep.cpp | 1 - src/modules/webview/WebViewStep.h | 15 ++++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/modules/webview/WebViewStep.cpp b/src/modules/webview/WebViewStep.cpp index 3e3e99c21..8e7c48f1a 100644 --- a/src/modules/webview/WebViewStep.cpp +++ b/src/modules/webview/WebViewStep.cpp @@ -9,7 +9,6 @@ */ #include "WebViewStep.h" -#include "WebViewConfig.h" #include diff --git a/src/modules/webview/WebViewStep.h b/src/modules/webview/WebViewStep.h index caeed07eb..691672211 100644 --- a/src/modules/webview/WebViewStep.h +++ b/src/modules/webview/WebViewStep.h @@ -12,6 +12,8 @@ #ifndef WEBVIEWPLUGIN_H #define WEBVIEWPLUGIN_H +#include "WebViewConfig.h" + #include "DllMacro.h" #include "utils/PluginFactory.h" #include "viewpages/ViewStep.h" @@ -19,9 +21,16 @@ #include #ifdef WEBVIEW_WITH_WEBKIT -#define C_QWEBVIEW QWebView -#else -#define C_QWEBVIEW QWebEngineView +# define C_QWEBVIEW QWebView +#endif +#ifdef WEBVIEW_WITH_WEBENGINE +# ifdef C_QWEBVIEW +# error Both WEBENGINE and WEBKIT enabled +# endif +# define C_QWEBVIEW QWebEngineView +#endif +#ifndef C_QWEBVIEW +# error Neither WEBENGINE nor WEBKIT enabled #endif class C_QWEBVIEW; From 9bdb05d4ea54b489aa90535b4bea5efbfc1e5478 Mon Sep 17 00:00:00 2001 From: demmm Date: Wed, 26 Aug 2020 18:19:42 +0200 Subject: [PATCH 34/54] [localeq] rewrite Offline.qml once completed, this can be a fully functional (offline) locale selection option worldmap.png no longer needed/in use working is the stackview of the region & zones models Timezone text bar shows correct timezone currentIndex see comments on lines 65 & 139, not working update of timezone text bar can't be tested if working as long no index is connected (see lines 93 & 168) Still, already committing, since it does more then old Offline.qml, which had no function for timezone --- src/modules/localeq/Offline.qml | 191 +++++++++++++++++-- src/modules/localeq/img/worldmap.png | Bin 102062 -> 0 bytes src/modules/localeq/img/worldmap.png.license | 2 - src/modules/localeq/localeq.qrc | 1 - 4 files changed, 176 insertions(+), 18 deletions(-) delete mode 100644 src/modules/localeq/img/worldmap.png delete mode 100644 src/modules/localeq/img/worldmap.png.license diff --git a/src/modules/localeq/Offline.qml b/src/modules/localeq/Offline.qml index 8823a388a..5a0d4eb3f 100644 --- a/src/modules/localeq/Offline.qml +++ b/src/modules/localeq/Offline.qml @@ -7,6 +7,9 @@ * */ +import io.calamares.core 1.0 +import io.calamares.ui 1.0 + import QtQuick 2.10 import QtQuick.Controls 2.10 import QtQuick.Window 2.14 @@ -14,43 +17,200 @@ import QtQuick.Layouts 1.3 import org.kde.kirigami 2.7 as Kirigami -Column { - width: parent.width +Page { + width: 800 //parent.width + height: 500 - //Needs to come from localeq.conf - property var configTimezone: "America/New York" + StackView { + id: stack + anchors.fill: parent + clip: true - Rectangle { - width: parent.width - height: parent.height / 1.28 + initialItem: Item { - Image { - id: image - anchors.fill: parent - source: "img/worldmap.png" - width: parent.width + Label { + + id: region + anchors.horizontalCenter: parent.horizontalCenter + color: Kirigami.Theme.textColor + horizontalAlignment: Text.AlignCenter + text: qsTr("Select your preferred Region, or use the default one based on your current location.") + } + + ListView { + + id: list + ScrollBar.vertical: ScrollBar { + active: true + } + + width: parent.width / 2 + height: 250 + anchors.centerIn: parent + anchors.verticalCenterOffset: -30 + focus: true + clip: true + boundsBehavior: Flickable.StopAtBounds + spacing: 2 + + Rectangle { + + z: parent.z - 1 + anchors.fill: parent + color: "#BDC3C7" + radius: 5 + opacity: 0.7 + } + + // model loads, dozens of variations tried for currentIndex all fail + model: config.regionModel + currentIndex: config.currentIndex + delegate: ItemDelegate { + + hoverEnabled: true + width: parent.width + highlighted: ListView.isCurrentItem + + Label { + + text: name + Layout.fillHeight: true + Layout.fillWidth: true + width: parent.width + height: 30 + color: highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor + + background: Rectangle { + + color: highlighted || hovered ? Kirigami.Theme.highlightColor : "white" //Kirigami.Theme.backgroundColor + opacity: highlighted || hovered ? 0.5 : 0.3 + } + } + + onClicked: { + + list.model.currentIndex = index + // correct to use config.currentTimezoneName when index is updated? + tztext.text = qsTr("Timezone: %1").arg(config.currentTimezoneName) + stack.push(zoneView) + } + } + } + } + + Component { + id: zoneView + + Item { + + Label { + + id: zone + anchors.horizontalCenter: parent.horizontalCenter + color: Kirigami.Theme.textColor + text: qsTr("Select your preferred Zone within your Region.") + } + + ListView { + + id: list2 + ScrollBar.vertical: ScrollBar { + active: true + } + + width: parent.width / 2 + height: 250 + anchors.centerIn: parent + anchors.verticalCenterOffset: -30 + focus: true + clip: true + boundsBehavior: Flickable.StopAtBounds + spacing: 2 + + Rectangle { + + z: parent.z - 1 + anchors.fill: parent + color: "#BDC3C7" + radius: 5 + opacity: 0.7 + } + + // model loads, dozens of variations tried for currentIndex all fail + model: config.regionalZonesModel + currentIndex: config.currentIndex + delegate: ItemDelegate { + + hoverEnabled: true + width: parent.width + highlighted: ListView.isCurrentItem + + Label { + + text: name + Layout.fillHeight: true + Layout.fillWidth: true + width: parent.width + height: 30 + color: highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor + + background: Rectangle { + + color: highlighted || hovered ? Kirigami.Theme.highlightColor : "white" //Kirigami.Theme.backgroundColor + opacity: highlighted || hovered ? 0.5 : 0.3 + } + } + + onClicked: { + + list2.model.currentIndex = index + list2.positionViewAtIndex(index, ListView.Center) + // correct to use config.currentTimezoneName when index is updated? + tztext.text = qsTr("Timezone: %1").arg(config.currentTimezoneName) + } + } + } + + Button { + + Layout.fillWidth: true + anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenterOffset: -30 + anchors.left: parent.left + anchors.leftMargin: parent.width / 15 + icon.name: "go-previous" + text: qsTr("Zones") + onClicked: stack.pop() + } + } } } Rectangle { + width: parent.width - height: 100 + height: 60 anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom Item { + id: location Kirigami.Theme.inherit: false Kirigami.Theme.colorSet: Kirigami.Theme.Complementary anchors.horizontalCenter: parent.horizontalCenter Rectangle { + anchors.centerIn: parent width: 300 height: 30 color: Kirigami.Theme.backgroundColor Text { - text: qsTr("Timezone: %1").arg(configTimezone) + + id: tztext + text: qsTr("Timezone: %1").arg(config.currentTimezoneName) color: Kirigami.Theme.textColor anchors.centerIn: parent } @@ -58,6 +218,7 @@ Column { } Text { + anchors.top: location.bottom anchors.topMargin: 20 padding: 10 @@ -65,7 +226,7 @@ Column { wrapMode: Text.WordWrap horizontalAlignment: Text.AlignHCenter Kirigami.Theme.backgroundColor: Kirigami.Theme.backgroundColor - text: qsTr("To be able to select a timezone, make sure you are connected to the internet. Restart the installer after connecting. You can fine-tune Language and Locale settings below.") + text: qsTr("You can fine-tune Language and Locale settings below.") } } } diff --git a/src/modules/localeq/img/worldmap.png b/src/modules/localeq/img/worldmap.png deleted file mode 100644 index c5c181985ecb4387fa315df0d315bd1a39f24fb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102062 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 K!IbG=kNQ8gy&jJM diff --git a/src/modules/localeq/img/worldmap.png.license b/src/modules/localeq/img/worldmap.png.license deleted file mode 100644 index 5f43e650d..000000000 --- a/src/modules/localeq/img/worldmap.png.license +++ /dev/null @@ -1,2 +0,0 @@ -SPDX-FileCopyrightText: 2020 demmm -SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/modules/localeq/localeq.qrc b/src/modules/localeq/localeq.qrc index 3f7c9b5e5..a3f8dec9d 100644 --- a/src/modules/localeq/localeq.qrc +++ b/src/modules/localeq/localeq.qrc @@ -9,6 +9,5 @@ img/pin.svg img/plus.png img/chevron-left-solid.svg - img/worldmap.png From c6a3e9b81669c8c15237bfba329bf0f894df5380 Mon Sep 17 00:00:00 2001 From: Asif Mahmud Shimon Date: Thu, 27 Aug 2020 11:36:55 +0600 Subject: [PATCH 35/54] Internet accessibility checking done by ping method --- src/libcalamares/network/Manager.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/libcalamares/network/Manager.cpp b/src/libcalamares/network/Manager.cpp index ce7f59571..57faae28c 100644 --- a/src/libcalamares/network/Manager.cpp +++ b/src/libcalamares/network/Manager.cpp @@ -149,18 +149,23 @@ Manager::hasInternet() bool Manager::checkHasInternet() { - bool hasInternet = d->nam()->networkAccessible() == QNetworkAccessManager::Accessible; - if ( !hasInternet && ( d->nam()->networkAccessible() == QNetworkAccessManager::UnknownAccessibility ) ) + d->m_hasInternet = synchronousPing( d->m_hasInternetUrl ); + +// For earlier Qt versions (< 5.15.0), set the accessibility flag to +// NotAccessible if synchronous ping has failed, so that any module +// using Qt's networkAccessible method to determine whether or not +// internet connection is actually avaialable won't get confused over +// virtualization technologies. +#if ( QT_VERSION < QT_VERSION_CHECK( 5, 15, 0 ) ) + if ( !d->m_hasInternet ) { - hasInternet = synchronousPing( d->m_hasInternetUrl ); + d->nam()->setNetworkAccessible( QNetworkAccessManager::NotAccessible ); } - if ( hasInternet != d->m_hasInternet ) - { - d->m_hasInternet = hasInternet; - emit hasInternetChanged( hasInternet ); - } - return hasInternet; +#endif + + emit hasInternetChanged( d->m_hasInternet ); + return d->m_hasInternet; } void From e1ad08f9b6d0b56e365de2b473c07cbe64a3e9c5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 27 Aug 2020 13:33:34 +0200 Subject: [PATCH 36/54] Changes: credits for bugfixes and translations --- CHANGES | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index d1ea088bd..6fc8b49d6 100644 --- a/CHANGES +++ b/CHANGES @@ -10,13 +10,29 @@ website will have to do for older versions. # 3.2.30 (unreleased) # This release contains contributions from (alphabetically by first name): - - No external contributors yet + - Anke Boersma + - Asif Mahmud Shimon + - Sai Kamal + +This release has two giant source-code changes that have no effect +on functionality, but do touch each and every source file: + - SPDX headers for licensing information, following the standard + set by REUSE.software ; all source files and resources have + SPDX-License-Identifier information and copyright notices. All + of the boilerplate texts have been removed. + - Calamares coding style has been mechanically applied to the entire + codebase. This was already done to most of it, but there were + some hold-outs. ## Core ## - - No core changes yet + - Network access status is deprecated in Qt 5.15's QNetworkAccessManager, + and was not useful already in some previous versions. Replace its + use in the Calamares network service by testing-it-ourself directly + via a synchronous ping. (Thanks to Asif) + - New Telugu translation. (Thanks to Sai) ## Modules ## - - No module changes yet + - *keyboardq* and *localeq* improvements. (Thanks to Anke) # 3.2.29 (2020-08-20) # From e02c21285a68a20bc5e6e03dbff14cc8deed0e4e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 27 Aug 2020 13:37:45 +0200 Subject: [PATCH 37/54] i18n: remove the compiled .mo files from 'sources' --- lang/python/ar/LC_MESSAGES/python.mo | Bin 2998 -> 0 bytes lang/python/as/LC_MESSAGES/python.mo | Bin 10507 -> 0 bytes lang/python/ast/LC_MESSAGES/python.mo | Bin 5220 -> 0 bytes lang/python/az/LC_MESSAGES/python.mo | Bin 8262 -> 0 bytes lang/python/az_AZ/LC_MESSAGES/python.mo | Bin 8281 -> 0 bytes lang/python/be/LC_MESSAGES/python.mo | Bin 9786 -> 0 bytes lang/python/bg/LC_MESSAGES/python.mo | Bin 1259 -> 0 bytes lang/python/bn/LC_MESSAGES/python.mo | Bin 2333 -> 0 bytes lang/python/ca/LC_MESSAGES/python.mo | Bin 8366 -> 0 bytes lang/python/ca@valencia/LC_MESSAGES/python.mo | Bin 410 -> 0 bytes lang/python/cs_CZ/LC_MESSAGES/python.mo | Bin 8534 -> 0 bytes lang/python/da/LC_MESSAGES/python.mo | Bin 7824 -> 0 bytes lang/python/de/LC_MESSAGES/python.mo | Bin 8210 -> 0 bytes lang/python/el/LC_MESSAGES/python.mo | Bin 527 -> 0 bytes lang/python/en_GB/LC_MESSAGES/python.mo | Bin 1065 -> 0 bytes lang/python/eo/LC_MESSAGES/python.mo | Bin 1055 -> 0 bytes lang/python/es/LC_MESSAGES/python.mo | Bin 8870 -> 0 bytes lang/python/es_MX/LC_MESSAGES/python.mo | Bin 1955 -> 0 bytes lang/python/es_PR/LC_MESSAGES/python.mo | Bin 400 -> 0 bytes lang/python/et/LC_MESSAGES/python.mo | Bin 1907 -> 0 bytes lang/python/eu/LC_MESSAGES/python.mo | Bin 2518 -> 0 bytes lang/python/fa/LC_MESSAGES/python.mo | Bin 8471 -> 0 bytes lang/python/fi_FI/LC_MESSAGES/python.mo | Bin 7918 -> 0 bytes lang/python/fr/LC_MESSAGES/python.mo | Bin 8004 -> 0 bytes lang/python/fr_CH/LC_MESSAGES/python.mo | Bin 398 -> 0 bytes lang/python/gl/LC_MESSAGES/python.mo | Bin 2628 -> 0 bytes lang/python/gu/LC_MESSAGES/python.mo | Bin 381 -> 0 bytes lang/python/he/LC_MESSAGES/python.mo | Bin 9196 -> 0 bytes lang/python/hi/LC_MESSAGES/python.mo | Bin 11474 -> 0 bytes lang/python/hr/LC_MESSAGES/python.mo | Bin 8080 -> 0 bytes lang/python/hu/LC_MESSAGES/python.mo | Bin 7880 -> 0 bytes lang/python/id/LC_MESSAGES/python.mo | Bin 2376 -> 0 bytes lang/python/ie/LC_MESSAGES/python.mo | Bin 2906 -> 0 bytes lang/python/is/LC_MESSAGES/python.mo | Bin 918 -> 0 bytes lang/python/it_IT/LC_MESSAGES/python.mo | Bin 8213 -> 0 bytes lang/python/ja/LC_MESSAGES/python.mo | Bin 9156 -> 0 bytes lang/python/kk/LC_MESSAGES/python.mo | Bin 377 -> 0 bytes lang/python/kn/LC_MESSAGES/python.mo | Bin 379 -> 0 bytes lang/python/ko/LC_MESSAGES/python.mo | Bin 8279 -> 0 bytes lang/python/lo/LC_MESSAGES/python.mo | Bin 369 -> 0 bytes lang/python/lt/LC_MESSAGES/python.mo | Bin 8372 -> 0 bytes lang/python/lv/LC_MESSAGES/python.mo | Bin 415 -> 0 bytes lang/python/mk/LC_MESSAGES/python.mo | Bin 1964 -> 0 bytes lang/python/ml/LC_MESSAGES/python.mo | Bin 665 -> 0 bytes lang/python/mr/LC_MESSAGES/python.mo | Bin 380 -> 0 bytes lang/python/nb/LC_MESSAGES/python.mo | Bin 556 -> 0 bytes lang/python/ne_NP/LC_MESSAGES/python.mo | Bin 393 -> 0 bytes lang/python/nl/LC_MESSAGES/python.mo | Bin 8059 -> 0 bytes lang/python/pl/LC_MESSAGES/python.mo | Bin 5473 -> 0 bytes lang/python/pt_BR/LC_MESSAGES/python.mo | Bin 8366 -> 0 bytes lang/python/pt_PT/LC_MESSAGES/python.mo | Bin 8341 -> 0 bytes lang/python/ro/LC_MESSAGES/python.mo | Bin 1174 -> 0 bytes lang/python/ru/LC_MESSAGES/python.mo | Bin 3529 -> 0 bytes lang/python/sk/LC_MESSAGES/python.mo | Bin 6775 -> 0 bytes lang/python/sl/LC_MESSAGES/python.mo | Bin 434 -> 0 bytes lang/python/sq/LC_MESSAGES/python.mo | Bin 8088 -> 0 bytes lang/python/sr/LC_MESSAGES/python.mo | Bin 1870 -> 0 bytes lang/python/sr@latin/LC_MESSAGES/python.mo | Bin 474 -> 0 bytes lang/python/sv/LC_MESSAGES/python.mo | Bin 7891 -> 0 bytes lang/python/te/LC_MESSAGES/python.mo | Bin 379 -> 0 bytes lang/python/tg/LC_MESSAGES/python.mo | Bin 9876 -> 0 bytes lang/python/th/LC_MESSAGES/python.mo | Bin 370 -> 0 bytes lang/python/tr_TR/LC_MESSAGES/python.mo | Bin 8183 -> 0 bytes lang/python/uk/LC_MESSAGES/python.mo | Bin 10684 -> 0 bytes lang/python/ur/LC_MESSAGES/python.mo | Bin 377 -> 0 bytes lang/python/uz/LC_MESSAGES/python.mo | Bin 371 -> 0 bytes lang/python/zh_CN/LC_MESSAGES/python.mo | Bin 7379 -> 0 bytes lang/python/zh_TW/LC_MESSAGES/python.mo | Bin 7526 -> 0 bytes .../lang/ar/LC_MESSAGES/dummypythonqt.mo | Bin 1033 -> 0 bytes .../lang/as/LC_MESSAGES/dummypythonqt.mo | Bin 1207 -> 0 bytes .../lang/ast/LC_MESSAGES/dummypythonqt.mo | Bin 948 -> 0 bytes .../lang/be/LC_MESSAGES/dummypythonqt.mo | Bin 1118 -> 0 bytes .../lang/bg/LC_MESSAGES/dummypythonqt.mo | Bin 1058 -> 0 bytes .../lang/bn/LC_MESSAGES/dummypythonqt.mo | Bin 380 -> 0 bytes .../lang/ca/LC_MESSAGES/dummypythonqt.mo | Bin 914 -> 0 bytes .../ca@valencia/LC_MESSAGES/dummypythonqt.mo | Bin 410 -> 0 bytes .../lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo | Bin 1041 -> 0 bytes .../lang/da/LC_MESSAGES/dummypythonqt.mo | Bin 888 -> 0 bytes .../lang/de/LC_MESSAGES/dummypythonqt.mo | Bin 896 -> 0 bytes .../lang/el/LC_MESSAGES/dummypythonqt.mo | Bin 378 -> 0 bytes .../lang/en_GB/LC_MESSAGES/dummypythonqt.mo | Bin 933 -> 0 bytes .../lang/eo/LC_MESSAGES/dummypythonqt.mo | Bin 934 -> 0 bytes .../lang/es/LC_MESSAGES/dummypythonqt.mo | Bin 908 -> 0 bytes .../lang/es_MX/LC_MESSAGES/dummypythonqt.mo | Bin 976 -> 0 bytes .../lang/es_PR/LC_MESSAGES/dummypythonqt.mo | Bin 400 -> 0 bytes .../lang/et/LC_MESSAGES/dummypythonqt.mo | Bin 880 -> 0 bytes .../lang/eu/LC_MESSAGES/dummypythonqt.mo | Bin 885 -> 0 bytes .../lang/fa/LC_MESSAGES/dummypythonqt.mo | Bin 973 -> 0 bytes .../lang/fi_FI/LC_MESSAGES/dummypythonqt.mo | Bin 946 -> 0 bytes .../lang/fr/LC_MESSAGES/dummypythonqt.mo | Bin 936 -> 0 bytes .../lang/fr_CH/LC_MESSAGES/dummypythonqt.mo | Bin 398 -> 0 bytes .../lang/gl/LC_MESSAGES/dummypythonqt.mo | Bin 889 -> 0 bytes .../lang/gu/LC_MESSAGES/dummypythonqt.mo | Bin 381 -> 0 bytes .../lang/he/LC_MESSAGES/dummypythonqt.mo | Bin 1089 -> 0 bytes .../lang/hi/LC_MESSAGES/dummypythonqt.mo | Bin 1221 -> 0 bytes .../lang/hr/LC_MESSAGES/dummypythonqt.mo | Bin 985 -> 0 bytes .../lang/hu/LC_MESSAGES/dummypythonqt.mo | Bin 877 -> 0 bytes .../lang/id/LC_MESSAGES/dummypythonqt.mo | Bin 901 -> 0 bytes .../lang/is/LC_MESSAGES/dummypythonqt.mo | Bin 906 -> 0 bytes .../lang/it_IT/LC_MESSAGES/dummypythonqt.mo | Bin 938 -> 0 bytes .../lang/ja/LC_MESSAGES/dummypythonqt.mo | Bin 912 -> 0 bytes .../lang/kk/LC_MESSAGES/dummypythonqt.mo | Bin 377 -> 0 bytes .../lang/kn/LC_MESSAGES/dummypythonqt.mo | Bin 379 -> 0 bytes .../lang/ko/LC_MESSAGES/dummypythonqt.mo | Bin 953 -> 0 bytes .../lang/lo/LC_MESSAGES/dummypythonqt.mo | Bin 369 -> 0 bytes .../lang/lt/LC_MESSAGES/dummypythonqt.mo | Bin 1039 -> 0 bytes .../lang/lv/LC_MESSAGES/dummypythonqt.mo | Bin 415 -> 0 bytes .../lang/mk/LC_MESSAGES/dummypythonqt.mo | Bin 584 -> 0 bytes .../lang/ml/LC_MESSAGES/dummypythonqt.mo | Bin 605 -> 0 bytes .../lang/mr/LC_MESSAGES/dummypythonqt.mo | Bin 380 -> 0 bytes .../lang/nb/LC_MESSAGES/dummypythonqt.mo | Bin 390 -> 0 bytes .../lang/ne_NP/LC_MESSAGES/dummypythonqt.mo | Bin 1203 -> 0 bytes .../lang/nl/LC_MESSAGES/dummypythonqt.mo | Bin 914 -> 0 bytes .../lang/pl/LC_MESSAGES/dummypythonqt.mo | Bin 1070 -> 0 bytes .../lang/pt_BR/LC_MESSAGES/dummypythonqt.mo | Bin 925 -> 0 bytes .../lang/pt_PT/LC_MESSAGES/dummypythonqt.mo | Bin 945 -> 0 bytes .../lang/ro/LC_MESSAGES/dummypythonqt.mo | Bin 960 -> 0 bytes .../lang/ru/LC_MESSAGES/dummypythonqt.mo | Bin 876 -> 0 bytes .../lang/sk/LC_MESSAGES/dummypythonqt.mo | Bin 942 -> 0 bytes .../lang/sl/LC_MESSAGES/dummypythonqt.mo | Bin 434 -> 0 bytes .../lang/sq/LC_MESSAGES/dummypythonqt.mo | Bin 914 -> 0 bytes .../lang/sr/LC_MESSAGES/dummypythonqt.mo | Bin 1127 -> 0 bytes .../lang/sr@latin/LC_MESSAGES/dummypythonqt.mo | Bin 474 -> 0 bytes .../lang/sv/LC_MESSAGES/dummypythonqt.mo | Bin 925 -> 0 bytes .../lang/th/LC_MESSAGES/dummypythonqt.mo | Bin 370 -> 0 bytes .../lang/tr_TR/LC_MESSAGES/dummypythonqt.mo | Bin 941 -> 0 bytes .../lang/uk/LC_MESSAGES/dummypythonqt.mo | Bin 1279 -> 0 bytes .../lang/ur/LC_MESSAGES/dummypythonqt.mo | Bin 377 -> 0 bytes .../lang/uz/LC_MESSAGES/dummypythonqt.mo | Bin 371 -> 0 bytes .../lang/zh_CN/LC_MESSAGES/dummypythonqt.mo | Bin 904 -> 0 bytes .../lang/zh_TW/LC_MESSAGES/dummypythonqt.mo | Bin 924 -> 0 bytes 131 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lang/python/ar/LC_MESSAGES/python.mo delete mode 100644 lang/python/as/LC_MESSAGES/python.mo delete mode 100644 lang/python/ast/LC_MESSAGES/python.mo delete mode 100644 lang/python/az/LC_MESSAGES/python.mo delete mode 100644 lang/python/az_AZ/LC_MESSAGES/python.mo delete mode 100644 lang/python/be/LC_MESSAGES/python.mo delete mode 100644 lang/python/bg/LC_MESSAGES/python.mo delete mode 100644 lang/python/bn/LC_MESSAGES/python.mo delete mode 100644 lang/python/ca/LC_MESSAGES/python.mo delete mode 100644 lang/python/ca@valencia/LC_MESSAGES/python.mo delete mode 100644 lang/python/cs_CZ/LC_MESSAGES/python.mo delete mode 100644 lang/python/da/LC_MESSAGES/python.mo delete mode 100644 lang/python/de/LC_MESSAGES/python.mo delete mode 100644 lang/python/el/LC_MESSAGES/python.mo delete mode 100644 lang/python/en_GB/LC_MESSAGES/python.mo delete mode 100644 lang/python/eo/LC_MESSAGES/python.mo delete mode 100644 lang/python/es/LC_MESSAGES/python.mo delete mode 100644 lang/python/es_MX/LC_MESSAGES/python.mo delete mode 100644 lang/python/es_PR/LC_MESSAGES/python.mo delete mode 100644 lang/python/et/LC_MESSAGES/python.mo delete mode 100644 lang/python/eu/LC_MESSAGES/python.mo delete mode 100644 lang/python/fa/LC_MESSAGES/python.mo delete mode 100644 lang/python/fi_FI/LC_MESSAGES/python.mo delete mode 100644 lang/python/fr/LC_MESSAGES/python.mo delete mode 100644 lang/python/fr_CH/LC_MESSAGES/python.mo delete mode 100644 lang/python/gl/LC_MESSAGES/python.mo delete mode 100644 lang/python/gu/LC_MESSAGES/python.mo delete mode 100644 lang/python/he/LC_MESSAGES/python.mo delete mode 100644 lang/python/hi/LC_MESSAGES/python.mo delete mode 100644 lang/python/hr/LC_MESSAGES/python.mo delete mode 100644 lang/python/hu/LC_MESSAGES/python.mo delete mode 100644 lang/python/id/LC_MESSAGES/python.mo delete mode 100644 lang/python/ie/LC_MESSAGES/python.mo delete mode 100644 lang/python/is/LC_MESSAGES/python.mo delete mode 100644 lang/python/it_IT/LC_MESSAGES/python.mo delete mode 100644 lang/python/ja/LC_MESSAGES/python.mo delete mode 100644 lang/python/kk/LC_MESSAGES/python.mo delete mode 100644 lang/python/kn/LC_MESSAGES/python.mo delete mode 100644 lang/python/ko/LC_MESSAGES/python.mo delete mode 100644 lang/python/lo/LC_MESSAGES/python.mo delete mode 100644 lang/python/lt/LC_MESSAGES/python.mo delete mode 100644 lang/python/lv/LC_MESSAGES/python.mo delete mode 100644 lang/python/mk/LC_MESSAGES/python.mo delete mode 100644 lang/python/ml/LC_MESSAGES/python.mo delete mode 100644 lang/python/mr/LC_MESSAGES/python.mo delete mode 100644 lang/python/nb/LC_MESSAGES/python.mo delete mode 100644 lang/python/ne_NP/LC_MESSAGES/python.mo delete mode 100644 lang/python/nl/LC_MESSAGES/python.mo delete mode 100644 lang/python/pl/LC_MESSAGES/python.mo delete mode 100644 lang/python/pt_BR/LC_MESSAGES/python.mo delete mode 100644 lang/python/pt_PT/LC_MESSAGES/python.mo delete mode 100644 lang/python/ro/LC_MESSAGES/python.mo delete mode 100644 lang/python/ru/LC_MESSAGES/python.mo delete mode 100644 lang/python/sk/LC_MESSAGES/python.mo delete mode 100644 lang/python/sl/LC_MESSAGES/python.mo delete mode 100644 lang/python/sq/LC_MESSAGES/python.mo delete mode 100644 lang/python/sr/LC_MESSAGES/python.mo delete mode 100644 lang/python/sr@latin/LC_MESSAGES/python.mo delete mode 100644 lang/python/sv/LC_MESSAGES/python.mo delete mode 100644 lang/python/te/LC_MESSAGES/python.mo delete mode 100644 lang/python/tg/LC_MESSAGES/python.mo delete mode 100644 lang/python/th/LC_MESSAGES/python.mo delete mode 100644 lang/python/tr_TR/LC_MESSAGES/python.mo delete mode 100644 lang/python/uk/LC_MESSAGES/python.mo delete mode 100644 lang/python/ur/LC_MESSAGES/python.mo delete mode 100644 lang/python/uz/LC_MESSAGES/python.mo delete mode 100644 lang/python/zh_CN/LC_MESSAGES/python.mo delete mode 100644 lang/python/zh_TW/LC_MESSAGES/python.mo delete mode 100644 src/modules/dummypythonqt/lang/ar/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/as/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/ast/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/be/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/bn/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/ca/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/ca@valencia/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/da/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/de/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/el/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/eo/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/es/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/es_PR/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/eu/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/fi_FI/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/fr/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/fr_CH/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/gl/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/gu/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/hr/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/hu/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/id/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/ja/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/lo/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/lv/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/mk/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/ml/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/mr/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/nb/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/ne_NP/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/nl/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/pl/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/pt_PT/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/ro/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/ru/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/sl/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/sq/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/sr/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/sr@latin/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/sv/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/th/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/ur/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/uz/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.mo delete mode 100644 src/modules/dummypythonqt/lang/zh_TW/LC_MESSAGES/dummypythonqt.mo diff --git a/lang/python/ar/LC_MESSAGES/python.mo b/lang/python/ar/LC_MESSAGES/python.mo deleted file mode 100644 index 53869a8e71fa125ce158a02f7d6fe59f231a4dac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2998 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 LFiq`LBC7l^rPWpR diff --git a/lang/python/ast/LC_MESSAGES/python.mo b/lang/python/ast/LC_MESSAGES/python.mo deleted file mode 100644 index d14fb29fa6c947a78f6a271306ecffe5e4d7eaa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5220 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 diff --git a/lang/python/az_AZ/LC_MESSAGES/python.mo b/lang/python/az_AZ/LC_MESSAGES/python.mo deleted file mode 100644 index 7ecad241f71e5663e7d04d3dd363cd7ac4419684..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8281 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 diff --git a/lang/python/be/LC_MESSAGES/python.mo b/lang/python/be/LC_MESSAGES/python.mo deleted file mode 100644 index 0f786f5e73881c057802b9516a624d671bfbbd1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9786 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 diff --git a/lang/python/bg/LC_MESSAGES/python.mo b/lang/python/bg/LC_MESSAGES/python.mo deleted file mode 100644 index 6f3e1574037cbd649e248fe754432fa5a481be0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1259 zcmaJHxJ_h(+b<&A`w``$ajb$1dH)tG}G;{Ebh)WJJSL&CPE}8 zo-y%Y^y0~Q0JITN@T#}z*~H)APw<(R@+nU8^qG0*eV^yuxAXgK<4XhUBya(^51ayC z1A6@c&Hz7wbHJ~y^B-^<&~U^sn!)X08|;G5gO|Vyzo=!*~GBg4@9#!6-G31K1i!GmZf#fck2{M)zG^{lzexBZWCR6>%~h<)y6 z9zQXLxsWsnNP)VKsK-RQ9`U(HBF^d;d*V$=UJO(D`W=eK;>cw}=%Tt3Nj4?jsK_M} zEz*>f5sXs#lrhf2sB}PnJ9}G-es}yBkqu~p1zws zLj&aQ!1$fv(c6h}R)}J0jtI}so4rL(nAyl7iLp_0oRxfCWA;dYI|#Y`Z~orF71_-U7K+UCq5B zW@=^`4IR>33_Ke9l#}F?lm+2f*38UIT55TJlFg>wD70J}(2&MVSQ16TYPIdF87t>m zsl>?e$iU8*X3}<|FXEDMbU0VQCrCCctwKP3-bLIg8Ve@7C$fWP$4;KMnq;v#z}+a1 zf50IfIbUu!>X4k57z>Iq4a~tP4uwN_p?VbEtzD$H?M`xXv72O4T?s?IQ)_CyvVh-J zwV{@Y`mC1KC$(I8t`9m=dw}VKsg?Q4Lgj_}uGaUa>PM+wsSSM(v9D^a@)Z1qAaxnZ zWo-wPp?NTELzQd3s*FC?)W)u|{}6llW(sho&FW<5E?86EoAJsZFc$Ob-p?+k|6vUZgUQjh?D*Wi4&|1q8G90ssI2 diff --git a/lang/python/bn/LC_MESSAGES/python.mo b/lang/python/bn/LC_MESSAGES/python.mo deleted file mode 100644 index 7faa09a2c0131e9cb69fb3bba3dd92224ad746b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2333 zcmb7ETW{P%7#*PHvOtlz2#Jd{=~FA}wRe*xo6SW^LJ|Tbjnbq%p=#D1Zwy|0WzRN= zR*M8eR0t3+jVdluRFOJS8d21TUL=(M10QuVH7RU4QS zQ1*TZOP#^WXTlloYqDEib9Wm88wVCfzFQE2H6o!IET(qNrJCsLJ z7*T0MJ3+e%k0P05K>(X(=y>irjd^t0vpJaz1J`S`BPP5spi|PXcgE?=;_?JMGaF8| z5GVJJ$u#qP@QIMNgBG(tqF$3VI6d9zo+i_t?|VUmwp-MNmG+H`WG-w6LSD33Bs|HB z!};*gma>Rbhr6E4#YH9~t%#3xRO0eU@x{DIE(jR{p$-Iex@0+MN(#lANe08R5-5$e z#!lDlbkAuc^-Q98J+P^(Q(E=J%HQgU5-vpHhujv%tYci{Q4HlZx-dTZ?)c0Uy*Raa zVfOrdVUf4ONEmZ*!*h&@b|W^H!Wu0soHrKvWl#DTZ!y7Zv}~0I4XbKcL$qYo`Ul>y z@GHE>Vqq*rEQoz3!l*_oR+Uxj7I%j#1J(dz{f=EJ4OU&twwc2!{1U>{t89RdI54U> zLxY2?jz8Bbm9g)y4wc-h&C2!4r6J3z^jl-+KwXwhL8Fak8B3fsYjlDK4d#3F%!&}L zxMrHGtE)vJg?KJsE81bx#I&&{S`(WBF0om*tT#($JuuG}=4R)n4r)>=S_KS^-~n=3 zZy{O1*M!;fnHLOWSXmTvF}l1oZB!5JB$dk}V=BPhqD?hgt$U&;vqtMdVZq0w`o?q^ zHRBo$T521QmWQc+96b}zzEN5_J6yXUwm(5UnkF|@Ot@`fv!!UVON7DEM!NlFnq0?I z0?W?)@?0ODuPOiAFzKc@wulml$a`tBkK0|P1G2G4Feu+jlO0@as0*-M(N_EFUT${a zNt6MeZmPtt;Yi=7$sO%~RNwI)2&af-ijq|pBrgs`exYSJ>A&`J=YoC()#|X{*v~N z8fZEBy-2D8_#WrYJEl|^RPf0@!0TTck;he2sYU&tA<5KGlgiKj;Ss=rI)%`q?}y^d b-(Tpvj|2UY&|<$;4Um)gUxu%v-u1r#1vW$E diff --git a/lang/python/ca/LC_MESSAGES/python.mo b/lang/python/ca/LC_MESSAGES/python.mo deleted file mode 100644 index 69051c4425fe566a8e2277c19284e7bf16a79c0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8366 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 diff --git a/lang/python/ca@valencia/LC_MESSAGES/python.mo b/lang/python/ca@valencia/LC_MESSAGES/python.mo deleted file mode 100644 index ab2697f1ec2ad9316c51d2e1498f989f360f1a33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 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 diff --git a/lang/python/da/LC_MESSAGES/python.mo b/lang/python/da/LC_MESSAGES/python.mo deleted file mode 100644 index e202699104276c7de0d6d88729fc8f5e37384f79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7824 zcmbuDUyL199mhvRkQEdVQT#&>E!ADv+1>sD%C-gC?ru}J%Qo#U@W2DJch0?cdgsnu z=gjQ(X4Aw+iAH@f7$YVcD)PdMFO9^+WTPfV6CRWoLzNJoc<=!*A-?$eo%wU;?jO47 zq|@)toO6EjJHLPD_r2Hdyzxg4*J zror<(FM_hqUw|U-_n@qQ3lx1m1ZCZApTS1p9#Hl@1&SUTl>Iyp%6?u2MUOYYuYvD^ zN5NZeb)5UaS@0pS1&Uo>1Rn(70H?qkZp-Bz0%iR(py;y-iaoy%-V44|jBkL)czz3f z7QFYf`S;hs8J>R#E`omp7r^}(cMLS(GvJHhbKt*0k^eNC6g|5jOPn8oBIjqI?Bi`v zfqO7Y^AnEq1US$0%XjAZ9w_o3$9SS=0LuFBfU=*zfRBRjg45uBjP(fkT!B9Z#m}#U zCuJVEADlqBuY*gV$X_p>uYltJKZB^|ybX#U-v=d5Z)Z^AeGC*ibH#HAid~-vCC+{h z%KXD_SpBc~>j*cYZucnp zeKWUwue=`OkH@)1*YXnkJOzqC%NZlb&KDqGxavt|-^KhkPzNkHh#&nyf( zLN$X>m%{ToXP?>4q}=q^6?Wn5neD$=j|Md>q3WC}-f4CE{PIaWR6Q^DbaehyxocA! zIT!W`!nCc@w(hc#YDpOcg{1~-f~chmd49K%^m}P3cko4-qa!;=BAGR>H#`>LzQpS` z&G73mCKvUlm)(xcZuEkf$%!WX5nc&UYXQppiPy-|31=oSz0m8ct`~VNEy-KU8MWpa z7B=E;FVv}aX0mR#uX_Eo9Y^Y7yu$MO8&bTd)-OAA9v&tcVq6^!^08^g`AmmU$`Y;m zai-cHfrS}Wp0G{hrg0n^)$pt zuQL~fp%@|S+33qXh1JgFA5bflu`u?0oebU;N(^R+0IH!^O_3LIq)T;&-tQl!0FL?P z7*Ym_V0BRIQh5AW8zp5)UkXg>)Dqz%CJiOR&hr+eREmyOc|?mRwU`F@MZCFGX&P zKdZM}y;-X=JA2@QXJtk@U5k^>aBfXF7j$af)Aka7O{~!%n>)NGpzVNIAP;4dYAHWj z2><+)+7vm(a9O1{kBZy0L8?6qZBpR(TKW{{gu=4+l*G#kZjY0`v$VzMMukMH%+=jq z+E)Zd7L~q4>`I)rTVcH7g$4{y ztI_q#W2J^B>-FM9;&P=g#e~w8C5fgj=xCae&GuO0|SK7He);*K0^SQ|dn4n8{YR zsupd3Ojm+!Z|38HE;;R2W+|Qrma$$eY-X}%Gq_Y6lTX_oqcq6`n&&wy8!Y0B3bbrP zT5>Hf(Ce2c*DsG3NhE(ePt!Qac$4bS88aM7m34@p)FaqDwO8tct#;?6FWgH6^vCg^ z$RL>8pffy0+$FZ&-q%~!nts$!&HPler)RybBpeIy&A|GcZODbS{c*tAYsNnms|&Z>hlDQab;o4cgF?zEcmqJTDd zw4J6sGd(%Ewzf7w6A_u9sV|X#-AS4UuS@AMlPN3Ao)bF8YsxPIJoD@NH6dvFuMyJP@m*(6fgL(3)rcT^hItU*pOsgX+L0V}! z&1pJvE~GyX-MKjFnrRjF?4vn;@TkiFJU$w!`;MyvV@F2{DzOtQaXVhPxg+TJrH^&1_sr!l0ExPOwnIPE9Y1I;l#75Q5@Yhn`c+tSE}xskd9sycemU zLx;q|=El{F{Bco7)NQMI$yE^A*|>_qLlbcbdKrwPDr@u^rI1p#PB`RC;!=(J+Uuk& z=iDh8SGT)yg*LCOECn~J*h{r?%esM*J8+ntm+tbD!er{2>Zpxht0K6gs(3%3s~y;J zV4dbgIVQF^rkZq>T5$kG|W3hC9 z&VJ`hnvxV$r}iS}CT{7*#Ho#yY{!MZd-Z`bXtrBLybbf6N;ctHDZ;FdkRkj7A+n5T zXs}`|n-+yJnGUsN;ii!~@mZvaOqoKPQ!pph#VVV4PkZA^oT83M3qfqAwRlGbzwh-wB=air1aRa{gI;NJZ{e;@gw`$g7u((U7X}R zU7Y1@s<&}P<+)Rzl2K};e0a??>GMaLv!7+Z*$?41a>nLvtMQzTSCZ}MkG!_R28;+l zCBp>BzS(#s%4b&m$G#r4%qSv`+AjQa5@Zbp(PW}!K*OGpY}#htPIVmDx=w8)f z(PxGi{Ii}ad8Pzn6t{3gQ7%i4G(3IP3n}*b#G(3BN4loGQc9Cv~e& zCfcMcGlWcC;Itb)N68Q76@e(jWo?6J)<$LqM2bkUEqh>-vB)jRd=Xa+cfDSZsD>`_ z!0%{eP)@LiBZl`We$-a^ET>WujlnitD&}X1Tt-2`3o3P@X~Haxr2WX7omDTfKgU#A zpLZk!DkY>XG3mxt3T3`+N(aIt6=h;!Ed|WdDM)F+1|+bDZHA6j?;-o%fl^6a4T>Tx zU?6W` zh5El8p_0gM$M$@%9+H?IW=nhBXya-t)Z?nf8N`7~_1a9R*lSLx+N(h*Cr{1W!|N=W T>INp16H3xej^$d14xjojH}+*Rmm-Yc(kSd`HRRXDxNT^lS-??{YcGq5$ zKt~z>Gc)&|d+s^^bM86&_dBlpvBPzY`%BzQ*E)^|e*ZfDaDDa$$9V?4y};+eT|B=E z-UI#_+z-AB-VN@!(Qyud`wDD;^8FX!82DH43!rn8;~WI;1n&n=gAafy_#pVR;`xu@ z=Xib>{0#UZxC6ZTX1m_~py+WJ6gg+XFM{jfo#0Qw&x5ancYzz=PVjAT1pGI6J2*UK z$4!6>Jf8+-pT7h}-k(63{|+endWaf7)^G182ZTzy>IGc^P~ddqfOP~wB0m?e>gEHilk@p&? zz_&rs=RY7SIXigR4ekTK0-gh9-EV+R@VB7oy8~m0{84ZT{APh~g0kL27-s=o0_)(b zpvb?CU>gP>1fh~M51s^H01tz&f#TQqKxpHTe$0Eod4l@@H%pjnlD}eu>+ECoSMk4t z+_!SGtcmX%LE&k62`8T97Vedo?DtV_v5#EBXVIm+#E)WoQiS2^A@Ct?xrC!~J-{t~ zBuvdEzI>cp_I}K~vGyZfm`ifQQ{2LB@%LlgVjqbOxpr}r;>;!Xx`lg!Tev2E!EMeB z+~oy5oa>7R@%I?_Z1F50zWo%p_y~&I+zaAXlQ$(cZs$J2ZLY($*w;@aH8*ejUZ&N$ zmo)B6FCHE@ zHBr)QX|z;Xtdcx(L%pie(120Cm{SVU>SWMpX47*{@xc#LZ#mS;ZqHX4cG8)$doHCH zRvRrR>8Ni`sm#ZkbX5zrymX~fEsugLDb|YppuSdGr&Kr5t$39!ZnjxHiCZ6OwN4U1 zofFe@{f3dVg@G~`Xjs&pgIA{`-xY}vr%U{NZX;erdnR)HM9h8 zPt2%}mol*yx7wl3v@@NzT5GDkmNnx@y%;Yuz4r|v-d5`uommeL6AUq~j=J$!Pe)j0 z1uErytnjXZ$jLHUVJ$17<4pY_kYAa~N(rHGj(SDCe;>L5 z9%n(4+!lXUZ?}50C(CT_fkn^AjC9tCla>D18g&+RX57>C62BwXs1eO8yob={gIK^) znV?#-M+@|~r_?6q6ram1z4@!SO{YjTXQ2rS{N58j#W|s{tT`p|a)R6AWX)OH;`3C6 zuvNzDRy$i$5F?LDUm|un&YF!dUiQKi2@-`Kd7z&+qmpSxjc~Z1VH~Ok$v3iBR+Ll1 z#;I|#gs~c4zqqH=FwNWTI1yehuSqf?b>&H-DGOFK#Ykv`v^`RtDHBSwRfoICDUMtj zWq4<*n-SG%1~oEdUuarQD|w}z%QOBHNlVe1Dx_zpW|#d7J7=PmDDFh%k>PqZDQ8OE z`wKJK>Q>dF!N+tZ*wkh|9%vEMer1;8xoa8Y#lmK3Uatq|d%nrirp72uGK%IlW@Uo~ zzsNvm45cO3Y=U0DIJSOqqzEGUzjKztLB7|?{+u!WOscE{e=-lUd1{yB2b1mQr7qkB z1J*|HpU8mBP0;BdBJL7f5BBwzx#?O|Q+0c)nbWhk(51#D)4WKqxW|3>Ih~}qXF|;% zojP&!*o=B^W?}L8=~F`sTIlM|rH#OMC-X+?F2xgSX#TXjpjQK#<4#j*PpEz4dmnSh z54z)ztG(kB`wu)k&NXz>OEY&V@uD>Jh^YxR)l7)Nz>Cyk+w-Ck=IxVVQ6ned+$HU` zCe$&V;8Hc*%(8YmF*erebVey7qBN-M^F&~4jPk*2k$lpzj2Y?JzVY!#_m25`Y|qf# z@wu7qe)f)z4^iu6M3}p@)<)4xpU=iPD}v|{oq(65Iy-V^Y1Td19VbiGb>hxYL-@F1 zLLFQVvP#PdlG4z8NQEA{vvJZ&CsfonkLi(phm`&Ak>N<)cSP;ob7-h&CbsQMj^_0w zuS;SpI+HNaEKe0WtDB)tdOH(!Ax}0gOTM*?wz+0Nhw{mUo{1V8m%}WOnrbG9nj4p* zhHmH43T?~A<%DFY)dIA2=d0eOJEdx2+!MX!m~(;_29rfKo6qx#v9N@pHy_F4ZVsV6_dEL&iH{E1Q&UCpdM z7Lp(&HXZ4})JnlmEZ$33c`RBe*VuXnFnLN|z6uDA80jWrbuD6}DaL z#*0~GmE2xyh8vetYGM+hI+~M>iSRsXq-k3dGtxkmyEAjDwrkV-lktj25ycoLZ`o>3 z2dA8wgvN?4h`d(xfT{&^yB!=&c3)Ui>5(B!8DAFZ)R!cc)i|Ug6QTxT)>oT+-fqQ}D!8T}w^cd#ny3hqb76?UJ>BeDCsrA#6cH{=uuFvppRGHKO{Fgd!s z9E83N4O30Yn1+@Kc#0p0G_oISzioZu%>#onKIiZ*?~@7EYgxzr*w9KGkK*i3*ci7_ zY046Dqr#XMB*R8Q>X6B)TTt7ajQwmfGeXVEG?WQdi2P-Ke-{zOba=e=`_iQ8Ns&on zvz(9(%+Q^>Q?@%zBppgw)RQ=D6d2V_f7%HW-z2W%q_CEv49Tr|Pnf>6$esKK!D*6h zT+S|JrbL>r^V7A7kjk9By=wK_?UrU$hjQ!`Vk^_yx~nTxh+kAKWrHS7P*I6py-@c4 ztn9~R*uqC<@72my6WY9GE%gyjI!aBrZO1CXyG606%c;r;(m7Tl%QKyHF4aT1kF6~$ zze|)Kx3;XZHvBh*U}+T$*K;UHRNVy?37aoAO zfJ1~35)!Yl`v#nO3}%beickL8BrJb|r+_qF43 zyjray-+dtGc-oc4g;1gr7G3PAz{R~Jd634a;_YypjYpTWrcn~^8|_h(#}73P;qlbR zwGvVfpjZg&&=22C4_N>5UH8=-EgR{=%%mYkoGHcHMkw&uHJYXUz|2KQWab6gH*&$gKF=v3M*ZIVux7p`yVdh&D}2D4|hEx~P!Q)Sfs~#xs^@+%!Tg zxC89q0vv!dz!{KOZ~~6No1|$~^#(lY(>L#VzVAIh&F@>wpB;?rhuli)E_gYe<%N`T?Mq}q@{PNf#q zs62!hRO2>VN(e4BJej4vlk{1ZE2Csexu`@cefq$f*3m;I1#XrM7)?WH%S3QJ25%_2 zVKMCBB4U-6!5bTs>CpEllS#$co_xfPt&<;7K~tJD?Hlyaek}+dRedJkZg2Qyx7+Eq z&o)r41a3=7!z4~V&G6R@J2rkMD3=Y0#x&Q=G>3yNQa`(AyNy^*+A>lx4irNDfSc3N qLzwk)d!opxAX_R=bqF$>rMg*b!2Hfgc5H+O*6iy&Mgv4PuR7zCVc0xsiOAw_^QB+E!kaB{<*4ZYT*t?c@-8Mp; z_zQ4@8z=7k1CZd#6^Y-#PvAMljY`BwPj7d2-y{vZGCI)ag&}mJI`7>PfHz< z=+v@p)0aK=DC-;6)d7{-JFFuPWUgTw+=_r|eszWUb>`orsvq20Uh)y8C)`-pO}R1= zw>k}ID@!e{snLMi11*$1qWdGHlH<)on_2Ek{or=)SBG5nGkjFm6+8~8X%Yc1tEoJ& zHZg(c9UdOKHusnN;>Znk?1enyF;9i@EJVhu`TpIiC$v{7ZMU|Y)2CKlzqGEE6$&km z6THESBkLs*mui*50Z)yvjot1ht55IcrS?V2nkv*i{DOe$d(xgX8j#SXc9f+&Vw*aR zO+YG{Y)zxKO2^AaS<$TqRV%9{C%=S-i!qD%o=&yDdAsA{JIsPaBCpHY6kSnalhA0~wJt AD*ylh diff --git a/lang/python/es/LC_MESSAGES/python.mo b/lang/python/es/LC_MESSAGES/python.mo deleted file mode 100644 index d2ab2f33796606a1d1749770709f2e1e2fdecedc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8870 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 diff --git a/lang/python/es_MX/LC_MESSAGES/python.mo b/lang/python/es_MX/LC_MESSAGES/python.mo deleted file mode 100644 index 86619f9ff2c261365807b91a045a463883d461b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1955 zcmbW1&u<$=6vqczC^f&MA~+y46+~StUGLhdinD1DC2^5eyGfHY>J3eH$M&SVGt16w z5>xfYg$oBHxWIpb!~t>RpFl!_e}O-N?|66PxQ3?fNY9^rZ|2RsH=g(YS~&kb!FUVu zKIA9JyY~A9{9qh|?}20RL-0HBBk&jS3ixNKpL>yzx1l@WB`_%UP4F6Y23r3gK2=T#X@EtG$zs25PfgeD>_!1#)&;eIK2HpUFEcHJ?8|T8yMf^+P0`zsT z1@4vn23&^z8+aZ32dslvE)?tTg7&D_;t zMaAxCZno3w{^yAsd6JB2IyNK3aG>@ZWX7TmPwB%)q${;yaZFPdK43$x8=D48%3H$s(sa@FqE zhO->z_z&G(&XR!cq)ZAuqD~*zAF4WaM#iK%@Vuj=qlU4Ehyg#gJ9r_BS;8`|Jp*6u zwS512)8qP!{(Y}r>v#K|Y0AxpUt3qwaEVaIDRMFV*m!Bogj}WJh-I3awR^j_-1c;x zJ#D}3y5A+C1IRW^8*an5bb^B8T=Q+s wHHu`WRzl_!f)8O2zA5Z~d2vx|R-lQ}rJ*3JeQCnp0RGdkE#Wc*zccV!e^`-n2LJ#7 diff --git a/lang/python/et/LC_MESSAGES/python.mo b/lang/python/et/LC_MESSAGES/python.mo deleted file mode 100644 index bc59b5fe47cf4561c00fdb21c09ce8761abba066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1907 zcma)*&u<$=6vr1@D45?rN-M$PMG)0)v)*;6Al)d3lDObDZmiUexK)$g@p|IjneEPO zeyHk=0~|SU;EE6jE}ZD82P8`zxN_$o0EvI0-|^Z>+~AUtoeKKq@6 z^%mp<$d8Z)gY`9d5&Q=H5c~oB2>czq1pYnN-+8_~V+nj0_M2n<9(Wb{ebC1L z1lssNKpX!rcm=$0#&LXb6}0;XJP&>k_HoBA;2iXeFF4L+FaT{F2kYRsWBoVqJ?Q^{ zwvIC|mU+DoHlVwpJ^vm!4}Jw!!Joke@K4YKopa^B58A$Lfk?x79a4e30>=o=>`}e+U`{`zNO4WJXMA61;~Xpd8BSAW z&-Ux&D&$(*EGMZ`b-o&^LK&L&UQ?umL1ttYEF*3;P;+?A=ltaQ)^ zXlRN?Ag>)B8n+d>TRhhofPgyJS8rYayh&Tl%{#4)+m%h8soc129gE2QtcbPSRRL8x z8}26G6*k6QV}=K`=r=xf{Uz7GMh!ps`05oOtFq3tal1K_I$=iT0kv5qG;J6zi#%Ph zQPy0M3d9^bErD)mB^u$1Lodj>JuTlD=; z8Xh-ZtV9QaN!*7#4l*Qa_`dP7gbBG!VV~uio0YrW8}8DPpS`NbbGIo& z72#t9w6rbEVV(hTQ|Tl{&Jy>A%2OSX%toqSSzM;_?@CqD+zK^n%N1w*`bcwIyO`+{fx`Xj+Wd?0U2YO5-g18{f7!5?eQy3Pp(P*C9x17+^y4zVgt#22J zi{0^~y(GvC9}OSXou|$C{@lLZ4ihm;B8C?*;6_B4zOhBp@NwV1U28vXKALsx*sWPj zDqnC`6j8A~yFJrh&uGk)V}}g}BI0FvCgGz`H|y~>d1`BXs-i>diGpVKdn$!57>fms Sra=!Mqn}73qJ;HrPo4k~IWF@6 diff --git a/lang/python/eu/LC_MESSAGES/python.mo b/lang/python/eu/LC_MESSAGES/python.mo deleted file mode 100644 index 6ec9f5277ce928ae017aaca55c6c5927f1abeaed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2518 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 diff --git a/lang/python/fr_CH/LC_MESSAGES/python.mo b/lang/python/fr_CH/LC_MESSAGES/python.mo deleted file mode 100644 index a063ac8ce03b08231482f0194287c8b9d331bc5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmYL@!A`d~`@Ie38RvRgD-mSBQVlqk|b(+V(UNN;l%x<1hEIcs z5SHP5F`2!1b6zTK(bQxjMfaP`pjc7xq8Xa=Pf>f&h*?gdL;PDr0z|st6MA)hL7cp2 zCbJF8IEpzdD2z3i$r_rAO4x6%b0*UkG}qRahGJY*RoiMNjacz*J5dErSk4Njxxv=? z4ek(fncY5&O_L~y!z;E@u#vhbYaiRbK diff --git a/lang/python/gl/LC_MESSAGES/python.mo b/lang/python/gl/LC_MESSAGES/python.mo deleted file mode 100644 index d70c91133d008dd016bf89e7bc75dd23fc949527..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2628 zcmbuAJ8T?97{><)uj3t_1)whphBMCI!wJNkvBcqXA`?5d>`Rn_g7NO$-6Xp+%g$`< zQxs9r)6gLy%1BV9h!ly+^r>hgKvdADpyEG!yT0=s!3nH1_uF}Vv-ACD=6`n%ANrc% zc^Tz(l%G)EKnWkh51wDZ*T7%FW8h!lTi}}yGxiR+2)g=Z@HqGt_yYJN_!4+Kum297 zMEx%4=9zh95Vr=pc`WF@`wch`-U4U9yI>7GdT20y6Z{nQ9nh`$XYezu=}+(|>MM^i z_93Xj1@L?DBk+&BKJz$Z@1ZWiSHW*{-UJV$ej7Xi{+9EVCkE^O1U!ZIFTl6Ko8U5d z2YeSSKgn1f+yq^oUxGdG7D(W+5@T2b}@nHW-HPoZFn zOjCeC4)%>PZ3wVE0VE!wz(mxd>zH1u!6PHDC$$( zw>>QQlHRK9Z!uQHboClrR>tx$q?r4cF{!B(EmCz!D^YapYo98sG@1^IJ_HRl%EY0o zN6a+}v@qlZ7CX{dHloqL4BDsBy~mx?#b!}A5lA>e@>wb(s4(;f`^7S3L@0bK0_y05 zY)=#;3N<4gq@k#=^+fx^7?*z`3YDkIzD|`z&Q+Q!TMf;ogK4%QB7J2-slC=ookq6y z-nq3W7H24gf+P)zD7Jk<2B``}M=Ina6>VwT>xO!ZhsNpz`$${`V+mH=F|V-mDsq_& zzHa(B2NCuUNne6G-g4kw5Q)JdZ_s*k@oe+V5?xr@*j!#aSK1Jjst9*SrmJMYZVw?*A_f#&>0>|Uvfp|p0%-QRIA(D+ZF4AWk>8Fm8k0TkViZbrfLyms~7`%h|UdjJiYr~ zySosqIgym69pR3$OE2ciSro^`l|zT)tc}g@aC9eEcs4HcI-F&0bk>^5l{?^`)$s&< zpQmsP9Q$T&8fZ*a(Y~*Fc!i6YwS#wKV1Ei*o;jaj2gPL8n0e-d1m#va9_RMLh&(f$ z;`kVz20R$3ng7K(k5ts-G8Y<7Jt}o(mOidD!i*D>W14991}t*VT65!ca>bcvjz~)* zmRTJ!%qAtm%49V$&Kz}If@bEI*{K+uqp|dGwsyZG*d;C%GE1SCyGig%?>6x$>NPZaj@5&&V(PzBV@prABXg?qIrtB{x=TMNv8&Jr5@d zS|*FP>HIZV@Jbs8Gb`i@9&2GC(-Z~i92WdjHXe9lj#Jbl;RBEeNFRlS-rijkui%9# zQ8U3IIA0>;{umLgUCjW+HL(0?1Z6}pU3*ck+^UlT=Zz5oCK diff --git a/lang/python/he/LC_MESSAGES/python.mo b/lang/python/he/LC_MESSAGES/python.mo deleted file mode 100644 index cdd79d657a53de8330d232f84dea1b0850f1c258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9196 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 I61~g%FZYfA>Hq)$ diff --git a/lang/python/hi/LC_MESSAGES/python.mo b/lang/python/hi/LC_MESSAGES/python.mo deleted file mode 100644 index 8b12ae6dcc5a26193270026013bc989f3e606943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11474 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 diff --git a/lang/python/hu/LC_MESSAGES/python.mo b/lang/python/hu/LC_MESSAGES/python.mo deleted file mode 100644 index 60592e1b5fe95af68a175fe61e319d3c7fecfd53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7880 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 VZPRGDNu`Xocf+}E+u>^8`42$Q1%m(p diff --git a/lang/python/id/LC_MESSAGES/python.mo b/lang/python/id/LC_MESSAGES/python.mo deleted file mode 100644 index 2a6c5294182d69ae0a5b8a723e78baa83cd5f2cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2376 zcma)+&u<$=6vqczewp9p=KaM4~)Iz^>lY@9E=bo~%K2YvxQ3;qB;5B@gl{|R0| z{~qYpSvXP5+XCG>7Igc51ulc%gA3q2um+wzS=jG_*U{etozK667C!w268fJ!%-9_G zDflM%Em#JB9rgbn_0K%Q*eQ%R!56{n;B%k>UA&)xr@^m50)GV0f_Fi;{)tB!y9ky+ zw@)8*>wFHL0lxty_zUBgTq^Zrx^0Wh{>(N_aQKqNXw)kt!gq#Q4X7@ws`G#btl|50fT2%9BI4UNg7J z*TRrXu-KEvvZ);XhtYu?-QVtt9v>D3sX)Lfg3m({eud$$e=u2wjEF?n3ZHs9CEFKc zi*Yt%?PrmwuJ;ZlT=_ErR@^nOu&XL|krca| zA?`tp^Fz=#kR7k-d)Gv2aLMbmeQ9;$(&aU}wzjj|+`3ZQ5s6N%*D`_hy$`d%cx_#$ z()O0OBW_AJ$7^sa>U6%g_^wx5@@ntVVy*u6g@qcP(k3_7Yo}b9h{MS`eZ-a3!=Jtj z>HR_eDZ&qen9B&B#uv}IWtK2Y1sMYJ+JeV*YAPR>(nzjozHe<}>ecFCFsN9!uI!0D zH@Dj55s!H)Ox0qRsh+RZ-dU_lzgjM}nys}-h>Mk4X;mvL6kHo7@ZE|%TSb*gwM^YU zPmQoESKI5}(!|bf)f1_=hGO$^_;p(9NW1T8oupsdjQzw<=U9+;dOvUF) zZMnoQ^N>2yaEgTr!jTAZBgZ%UfI)^EP#oH{CF<@NR<81nV>VL1X}^x%)?H(^G3D`0 zwNXbzSxhO9lS~DyodpmlKa1r^kSffbYsmYMpy~0E_@MAYVZHoaVJ&2*sO@4L1(?eZ zTZar6N>eC!uGGcO+~|q~TbFFxMN5f@Q*DHCS9@P>s#9WvThi4D2uy!Ri%51!;<#@+$%6#N!Eh4zU@7`qG(foH&V@GRH@&w-zV&w)RHPlNZt zSHR!Fm%-!5@^wywFQQ!op9kLsUjpmktKf$qt@A1PEcg}p4EP;*2K*5`3;qGpzNa3| z*O>(0M0*{i@w-L;*WgoVe-8#Y<4@o++G8hjehdzw{R=n=vd0)30j9u9;3jwl`~oCD ze*;f~4?qqMJf7172hm;x$u0q306zlh{GWm3|2H7T^XFpxPmtm;P-5&NI0$;+B3K1K z0BM~sK|0^PV*CMk8trpWD-|{!usOjbcst zp0}61<}<*KBynw1y{Ai;Yn7e7AsGX*QKFd48Oh7Ln|nqTHUeWfYEhoruaaZq75bN*-^wyuou6x0O8@=V znv%$spbK2jZi%d3uh)wlU@wRY+98&y1| zd10NmW`wq(aIvZJDIrXxF2a0-Ms*`ahP*W?q8gvmPMQ!7rjnm;I+xg5rLwiPRYuil ztLk#Q?8i|B)gmGU%T^qw*~&<@dS$qxWaUC>VQyi%bC%(9wS>}iQp1Ox1Wr1+?J7wq zlpce22xFz2xVbjtjdtv4tGYDaw1$kpml_}4P;SrF8dtKk9OBxC-b`#FTjM&(ns#Dj zjOTwR&TBq6!G|x5l~8({sBcO*l3NHtUtQ~xG!vs%d8m5y?63vH}}vTE`Y4X{ql^YvGabo!S(JJj?Y>#dNgx)$gNqT}xQssB8g}IGXHt2@^VSLA!VT z_bGH=|MQ&u`m#(44|=kvYywr(qmNlvI{=mrk?Upm90Up99YMow(d;(pTA_$xx5Xi{ zneBZ*H?!XT!r2w`Ktd1wJZ}dDG+$92rlZ+VHg~_4wkPCzI+N!yJT#HHy6Q}j@D*nL zjWfy3wD?HYh4%JLSjexu>}V@}0v1zzCHBOZL+LZEg+fB$cxtm0^++y0J$=uWsc_HE d^Tl07vY}*=()qo|wULhWcNJydR)Ru<{|4sJQ4jzC diff --git a/lang/python/is/LC_MESSAGES/python.mo b/lang/python/is/LC_MESSAGES/python.mo deleted file mode 100644 index b56cd6fbc416f5e95077fc73f1878b18f13b753d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 918 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 Hfzt~86r2T~ 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 diff --git a/lang/python/ko/LC_MESSAGES/python.mo b/lang/python/ko/LC_MESSAGES/python.mo deleted file mode 100644 index b15abd450a8deb0799083f3f81881fec92d42570..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8279 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 a%Z-&KjEt?Ept}AWT|es4|F+M2r1cB2z-TrA diff --git a/lang/python/lt/LC_MESSAGES/python.mo b/lang/python/lt/LC_MESSAGES/python.mo deleted file mode 100644 index 5f976d9ce8765647927d2ea356e71c1066a4699c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8372 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 GPJRIf0&*At diff --git a/lang/python/mk/LC_MESSAGES/python.mo b/lang/python/mk/LC_MESSAGES/python.mo deleted file mode 100644 index 1680c8dc179d93695bfc46dd429eddb3ad39ee6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1964 zcmb_c&u<$=6ds^JF)e6zNbwlvU48R_jeZ{C~l&Ak0~|9WB1 zR}AAh*gn`Nu;*ca!rY+87<&;o2HXz}fCqpd0AB^J4E-O6@pS0l9mZdJoUxaYHwByo zeh75?zXAS)oZG-7@Z&vXW-ujR)NQ!Vyp)I40s&)2k?F1 z-lqrg77+9d^z0d!8%SY=e8$+bLqwT;Af4@nJpn_Be7K&lX|9yE)YPga+ucOatZXmX znffTOlt?S+o$lXFL zOJmtR2lIV|f&bu*eV%rRhZc62)Bcwnz*a5s9W1A+>Zu zc0r6Xh6xnwup5aYyXT7Am!C`Y1+aOw&^rfmbUvWDsp*qb?^Wqsb^c84^r^zU=;*|H zb<>ui_indsyoL^_Fn8LU7Z;`5FK30EfK zRwn_~d19radGu0WG>ekniu09ZwD3+R(N?RN%c$7Y@$n;$c>+YL-9-<)hTyTIX^K!Q z$rT-1u(o4@QfX;vsc2m(*%HfcZ>h;64tilq7Q0Mo-1pxsm*U0J;X=JuuWsGCT=Wam zT3MlR+Djc=$BJcJLhq%Tq~-!ojIfonjT7F)R-P->5{Xw;O&vw`19H z=N!?UAO3wFr!7dUM^MJi{FJ?PJ?%TqAbDdXtAW-ah&*sTTS>1&L0{(5blY(|=%^3L x{Jgmp%IQN#x4^fSU2_6n17$D!9`0pAYVW~cSg!F^kgq$H4u55j{vNk!)<1s+OwIrR diff --git a/lang/python/ml/LC_MESSAGES/python.mo b/lang/python/ml/LC_MESSAGES/python.mo deleted file mode 100644 index 60415346e48265a9f8b92a6582ad1cbcfc83f27b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmYLFO>Yx15M915d*A?94(8Shyt@e%O*aJ5h6F`4Gzy_-oQ<ZI5C{Rs zUbt|eCxrNtS3&~HKS371gz>g&M|$&S#_##-@1^tm9>h7o6~GeU0$?5B;xXVdfE@D- z`1u*ndj-4WTu(Y zEMb9=>Fw)o!xixJbVgE&N0j6->Vtj0;e0+1v^#)J>2{EaJWQN`NUA~& zCKcAB=w>aMD!=q^N?>sD$oK>ZV4C9obV_4#M>~3l2!_ zlRnLiW}fE#oS%KSyiPn9o-5C(=f=}0^o;zn?`v~&P-@MG%z?~SWGSsvMsu7F$4|q@ z7%$_+>umml7P2-LNa6~$BBO2LNM<-j>6|R&r)oT8B0zH7W5EMqAz^(SFn)V?&AiaF z(8X31l4Md;94EpG*eKlI0Mw3Cy4&r#V1;&SE%)8rR5TZ*sDzb{g10!@W9&Ylm8Bh& z%#!$+H0UxkHX5V`l6}=a0?0kkx)e$eaJ~`NNr>LEDG85v&8xMvB-XiEDP3?JzAHGy k;#9#VJKGyj@Kc7DO>Y*MY&ygeKF>;IyS|Lx6_sI7Lo+tm<&oBVZ|1{+A z7Rox&wxkzwD{8QTw=((@NJkeXy#iw!t#YzDIeUBZW=^i=>ko^|3x5s0HjXZB-IVln zS6jN#Iq_GQbPb=IA%?yd4ssGPo>G=kHX)qlqw!0I^4|&T=*9?TTj8|HNtVPyGBz$J zLRL|nWJLtyVw6n)-BX!fSA|I9Sd!yW%o8cIsGN+eEah2R3Jz?PKwPm2jHBy>C!9yG zj_yihB~|ZmF1i8H<>W$}J=Bd*2Yiaw=V2k(WohrH^NwOvyYo|n%(;i zr7AFVuB0v-RpSzh#{FwJC#vvQ?aqjno@>)t{OIpYJBy~|_j7ij$cq`_hg1LWA;I7& Jw_7lQ_X`j#n(Y7p diff --git a/lang/python/ne_NP/LC_MESSAGES/python.mo b/lang/python/ne_NP/LC_MESSAGES/python.mo deleted file mode 100644 index 1d91bbdddb08eafa1dbf60303e890f96357707f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 393 zcmYL@Pfx-y7{)Pr>d~`@ns|U{X@^Ef$qop^5Cs;TTumJ>qh@QDwg`R@zn-7P4ik8i zU*7+DpWpMdpN7|o=fZR4IrZFlYK5MeA9j7LcMeL7{)Eht@scdSSg94qNq_L%e~R%U zp1+P~Q#6N48%HKKmrL@v$t_7W$0(VRIef|bh75%Rjyo)PAS@)Tivz}Q@2;5_dJ!t$ zh#W`?qU3lAl_(@`?qdr#*UnXzQ@Y)5+s+7Owf{e5&t?yO)(ng&g{!gQ(!j};aT0PYG1Kn+JH2?qr diff --git a/lang/python/nl/LC_MESSAGES/python.mo b/lang/python/nl/LC_MESSAGES/python.mo deleted file mode 100644 index 4c862621f9ae4faf66ff3b5c949f294f5d7781db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8059 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 diff --git a/lang/python/pt_BR/LC_MESSAGES/python.mo b/lang/python/pt_BR/LC_MESSAGES/python.mo deleted file mode 100644 index a27bbf671ae34c2f1fdd94ad094e8a21cfaf3db1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8366 zcmbuEOKeVgGOG-AU7v1wT#RjR78DH1!R3L)|P&V9_Cv7J}1 za{Zrs?m6H2&iDRq-o5?$pE_K}xWCN3e4XQH@CVoPhwF1UI?hwzZ8<&%?%??X_(kw9 z;9l?p@C)EQpK_ds!96*)L3#fRunztWybE-0a-4m@-QWY@0{9>pgI@!Go)z@$a-T}V?ehBUd zZ@$HG?g!_e0?D`XEc3mq4NOOHj`7KB&O^ z5K8h1$9WQ5=K0Or9p@Qv4594-H7Ig<8C(Q^2YyxFBb=k)Ztxr6IZ){TDIdQPCS=|` zcoIxNIbR<<0E)7o1P+4o{9RDw^Lr51oVP)d&p$!Y=MB6RJGdVl2WLT%>sgS0&iDAk z*3Pd$vFkTMdH+}NAowqkt(}K>2}x%bJPV!yg>E0LgYSbPw>vOeq4x+VcJoyJ{2aKO z=jXw_;H%)n;NQW=z*{hG+2;r-v z58~uv*K;8MoDP3#;ESN}c@ca9d>d?lcX4R8aC+cz@MZ8@;JcvcZw8@Gfj3=N0hl;9H=a`$JIl`#(_RcvNNbe-XrNoa?w}xaE@f!aG~p>kxlMM%QPLt(^20PpR5x__+hQ}zKvzeJo48@%$dojQpHFq%fsvr)w$n)4SBG^Fz^raI zRcxX)w;@bw-@v6xLKUS!%`R zW#TKS=Te(27MWmZO~K4nExMwOd>yZrtfhf_ImZ03>9%@>bP9GOsT0Sy-mz*8YEDemIh>Cfb!_SMAv9Dz zFLX_?bhtQmTzRwT^)SMuqmqvCIY_yrFoIlCgEel@Ryn<<--vqMq@X+4QRbMyzQmE@ zb=@6)=c2wy`>l9**bDJRGcxF}%Irqh4VfGn%pc+<0k!VJd^6IGG?{dcxN+ChJ>}~_ zw~aV&#b?yIj#=0U{jO&c;~YtSzo)vrq!R|}Y`DVm>Ig30RU7A>qZ$q43?Zrx2L9NJ zcd^YXrj$lT^}OjAhhc(#FBA&hyUZklK?mNPM!B?O3ux||{dVPFb& zhsJk~696Zg#XG1B9KrISHYD&gLlY|rOXi##Cr-r?E-`7y5w@QX}A@J|*0Wyz?1_#Sk@8&)Bt>3C`?2U`1(+plPs>ob*gL zG6zK{Gj;hT=99)5T^r=9#NAl6-8BacH3I;Tux)zi^Yb6up-z?)YY$Dr*C zkw9k3IMs5NS}^}COO04g{7`yigMdhV5ojBF&^Fj_oH1hpIv1jhvMo zB}-&}YLzT*tj0IaPZS)+X}23jVwWpD2_}TDG>Qym!K$Gc@hp+9Ce+z7p%7b{+=Wh_ za%GmaJ6qlCQtKVJL4+J~&5YBMULofq$6ph*7_O;8Dkrt49NySD9jpf7dQhZ{nr=ur zQ}8}qn8{H$vleWfrc1)MHfy2*AD?cPV#%KelCfIMWfrHcmV2)9PPVo+Mj?_(IL~}m z4w%~)5$LovY4NozKyRF{Z=BziJCXc$o~3Y*_bsA7IcC_BO6g!fiN@Hp+9C15M!Q9+ z3wK}vy5a0>JnLRt?Nx|<6h8Ett_kA>{%^zsd0%kXK|L=@n-EA6UC@! zS}o2VetP!UoO)(%>D2LslVeLp%(XTjx7}v#P}+`b%i**dTU@9unKf6|)Q(VUPpdss zyC17f?W;{au69pN?|t~8DXy^-I!Sn7Hm6ZvKrEB45Qpq=7swPmAy zwr8`notoIF@k5b*!SyE8cqd7^@pQeuzP>(5H4(&a%bddz{W?{I_K87pJz;rV-!nD! z=|msSvFWx$VxsL?2Hnc6@LwUDMW8MEma8MXh`8)- zz8G!W__nGdTro;Y)EKeNjQtD!S7}8s=d!NU*_c#eGGAlYWryROl*ia*(^EtInzip+GR{6iEkoU7K9OUE83sU)5tD*#r0fr7xT2Y z78VgI@3D&B5%%*!d8^$z6(Tl}$pN+K8S{T@(WQr8YCoLzuEOBp5+WFG?ieVv5Q`OMt=YigsB(>O{j6y9s_%xD<_0); zABa^-r!00`G<)S96{hS&x;)$Tx!r_FHuAP?*ha>s<#WlS<#~nFaLebC#zR6(-ZDyN zFB?80+>oF|0yKW~o~~|^!)<7AS2%!#0&2$ouWhihEufY%)U-68VVcGxcG*^N(wR$i zcVtlNxCI-tQk5dkmi9Wtxlq}b)qTNQX7Q;;TEm8+>TS8tr=~{If(?G*FtlMIpAkkn zMEEjiHH=Av2;Z3%K;4El2|`(eOa8aPXlqsoT8M@nWC7HqVf3?(agpXIXmpI#6U8nT zfw54?X1;{{v)++~o0~@lGqwlQgiZ(rcpV;0{d{goQKnWJ4o=UCg<@x6Vnl;^Cuu*m z1XgR(OqwfNV>`~PUX*vB)phfd*@X2Xk-aHwTi5PjLV*c7Vg`xva4mxsw5i>go~M*j zmAJu4JNFV+Xu$=y+hpET*g)kFa7&X)^q21vr0O*0 zj5x|j+gY-`%|2OLmu4g|4Yy!?TVi?hnoCq%;4;mtwbY6++1}L-UXv}^{t@KhelWW+|2lf_%C8n*3R4JSPp2?yaiS|NwtSy z8`^h+j&)7(l}pzWQcrHv7>C4U?N#+4foX(#sh6S=ylR3K6_rOsU18)F;kn8J-%*Nu zOL)%GR?h!$b8HPR=v2I~lB-K*k>I7}W6fA>Sn>fToKv)=L|zXR@*}zU%&c_DWdXUV zf6jwZQD+wX@QKyLwrikz9+L>1=drx8&P9k#NpC$DHzNL*L#E~J^@191 zu&tMItfc>%Z!^dohg5a&}NacwzHQ=v-j_0HYhsdr|! zb7$pf3{-@1W6T({lmd0zoO(NfnNYE_(kyh#rF2bN(0@a2VL&<03!t3mbx`f(pDB zp}cgR=N$mgaR0YEa-2kHU*i57pvdzgD02Q2_yD*K;T!{xg9pJEL81Q_@F;jUOo%+6 z0q4Q5gO7o4fK%XYD0?4x0+jm~K+*s2_yY^xTcGUw?*c~HZ-l7O9|Og1<_gr{PVO!E z5cpH@Ven0G4|p5KE%c9r8?B+#K-v1gDdjA5&F7M~i z!q+iSfdN<{VyndO{rY39q>BtuV+j%Fui}@;>J|pu zJO9236gw?1+3U*;IeU4D-95q({^b&T6I&=RkvHo02oc^4V=qH&ST2#ZTw;@AU%08e zM3;{-P`k5dc_?;5xNw)~-~i(gV~p`AW0bLrA=fqrAlH8j!0M&8QTg$Fl_DpTs{G6)^+Ian5kF_icF2`6H`$1!^lupTRV#0WZBW{#gBZFr5>JX9pFb z8bRBX#Pc~PpS+Sux#%xT?9|EQo9|e)26aSC)jL!?GwRsF>4RvfcR$xL(ZZqf)VA_w zzP*MKrY)7WOvpicOG+asB-LLNL`_xD^TT?w)=5jc{T*eFiQG#Z$*$_o;JX0zB|2=_ z!N=_wUo;yYhRZU$-U(tRCkFF}c#nWu4Pf3+bUjPQy~Ba+wDp<_b)=g{oVVgLYE@en z*5k0#HmUIrXJNReI%{bwj?}a963eSkaPf{>Kj$6QXc%XRQFYY!$A%qan`KNXON?5J zGu6@<7GhMn!!~R!jpMde9bI3B8@9G7p~m335aF z>^&XUW+lpOt$|b8(Tq&G8YjzxzBTThGO1HfODF!SNTZH7FY_FOb}vK%xhdmRi+O6n z{PQfe!E%b%Wt86dR@7!JR9!A~PJ!Ml?o;Fmg=AfpM9T?kkCQcTaY*M@wXs&2Yr;;t zrZ9{wDs>6jr8sRh+wqcaTPTPZYU044-Hc158F$37{S@I)HAuXXv$CUPiQG?}lEsbH z==!-GC5JZabmBzpa%oM1385=X5<^+AY$!(Bjz~un>Rg#nimjL2g-(%jWtOu$SKW-M z)mBg^LJqiQ&S{TcDd#fBUlTP8*Hj^ule$w5ZtR_omZNwzDpN*H*QJ~(c^@pyY*J=f(;rlHcAL3I}=LAo`PI1}&*49qcF77@JnxBtE!kH!pSJHY{Lm4E+fW zjJXARgHuFZBJ0g{J+#)YMRnE4vzp7E)k2pVmq_z0&Qd$>*PbwmMLkn$e&*1LnPW%P z6Gs+K9iMxAWWk8J)@E%p@M{ONrmZc;Q)*;>uC`!S0$Ec#OsPGkc1`Ylv^Ke?Hu;#^ zIXSiap$8|qMowy*))o^T*|x@~rqn`ECvL>*R1kK5P7;|u8`k55J)DOhXoj$hkA?fk zptws2M9mCWtSuTH!XC_I&CFP%M)ThULN(e-(~g~*m{?t19jD%iY|t=gh0FwXh7O5R zb|Qs3=T+2gZE`e)xcJ~={Nl;VxG#kCHHO3m4Hg1iz$d+8c< zVokd5^y1Olp8h=9tznYd5$X*el})KVOF`P>drG;zM&{cT^zGWwI0@~PiaPGr?%TCj zUoTItRs zGq+tRw%s%#^-?A|Q|F1Zd!hRZoeI|O&31p(&nNlwvhVR8ms#Cc>5{DNz9ub=_JcYW z#$n?;K6Ed{{q9G{D$3`{Nza;kmJ{s7N|O5!$zGu-G|RSVcp6y;gIsYt=NX6t!bA~s zwrF~W>GX)W@FwhEJBbg%2R#*j$8oeoJD-yAnvUaIE%D%5&qekx%HGN>ykB^yjAEuMLBhOA zoPjMv58k3DiqR}3E+$|_0Hwe5nnAY-?wgn@AXtH=l$cP7@ zWMMIJU|yx=;PkAR>v1t`=3=MPU%H+$l34BfNpsmnuHn4;RYeCnv~Y&+b7U?#Il9DR zs7y#6CTej=Q%}0D2=7a=wlz8iwwq{{>M`-*NB1LL5h@HE_}KkSAt7QP4|K$Q*p$c5T*az=2;CQWzrtB?lKU|Hk;2VpSsqHcu=@Cvj-QT z8ssNkZ`!?>1Tm+PCYKaY+7(4Mzj3TeEW|2S^z(sMl#Cd(e9jO9VV}XS#kf$Ee_9Fi zPi<7y(g4p@%S@}gud%!l2NEvls?7F6P;Pzwe%J{F?rDgr>78RpL2FG`bizufnQqHQ zIt-##&v7nYKS%+&MSm=zxuOPlhC$LjwUo`^)lsYHsDJDR{+oZ!t8UI$6u#w4J&11d zOelIqwyoUDiZcxM$Fra d&zodpTaC@+ZS@8d*|@4`sN1crIxU*&{{wmtNFV?J diff --git a/lang/python/ro/LC_MESSAGES/python.mo b/lang/python/ro/LC_MESSAGES/python.mo deleted file mode 100644 index 3844e22d8ea8beacddfb59637432558bbd6ee318..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1174 zcmaJ=&2G~`5H_X!$egHv6GDqbDqCe^yRB&I;+FoTC_rhHrj?4gY@AK9#oo2N>!vB? zfOrLvIPe4;VaUmvRrr=?;^oz5g758ES|-7yNH3Po{Er4sYOL5WR4LW`gHkm741|T zTeZ#SW`iaoRd_>oSsSlpU5T5*M`nE!H|Rdo8oWjn_0hEJ&0)8K-Ff7>{>y#D9z`GfISKOo|_EAH` zgloCgQ!0_Zpt+DR5-S|QQN4VUe+tS=BnU| za%ggpz%3L#P)-sN#urf7BdMe+*lw=l%IP^>szXy;<)LW9Pw-Kt#nefkK1zjIkFu0R zcwMBi^bt>TQwB2&Xt)h59t7T!>syw^OP=d4dh_pby)^B6w!L5) zPeiMj#tsV=+yC!CQgZn9ogSqgRWzc-^bOq^KaP}*Es9t^!NbU3v!jLQ#^L5g^88Ga zkMBQ4&mCYWN+T9C4lR!Ma^fCsB(HHM*3KW-u+KGk6YwX=AwiPq0nZ`?@ea%=O{wt* DkhND_ diff --git a/lang/python/ru/LC_MESSAGES/python.mo b/lang/python/ru/LC_MESSAGES/python.mo deleted file mode 100644 index c26778b42e95e02654a2d7f49d1b091de1204fc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3529 zcmb_eU2GIp6dn~(Rz(HGKh%p_?27wW3c|MA3biFw3$-nnNHCf1+-*m8XErl;S!yA+ zPc=Evqqw(GE+?n0&!Zy4x$>y7T?>XN+ z=R4=#*+15-_(s9=0)89tTXCPF1c846>G|S*MR^DKCGaWW@4&Ude}InzS3aO9&jQy2 zp8-aJ&jCAuuK+dR^T5-<^}vh3b-*IEL3S9l5mrE;<_zwEx9FY9J22vhB16KnVfPW&_o4|t@Uwg>oTlcV{ z)M5M=8#+kme<=IQ(quodGRkm@xJ zq>@q%NY^#^(SvlQPV^2570@f#T0uFa?vO?H25Ck55f|0B^iXZ-L0a;monG=Id4Dw8cmNPGQ?M@%v7%1^+nWQz86(yU> zj%33PxrnUnyqc|E(+yo%Y9?h@Pp3@?!)emuNDL%pLzdSOq-LqfoCqr&s-6b1FqxGz z{8)361p-w)x_rmAtPGM818htvTIz_%g-O%-a@ zglTZ*TUO22)uUuVt+WP~E;DDyG_tBCbgC34_n5FK4Vh|jrty?c)lZ@J%~^}L49ixb zH%c*Q^RUuwnMrQj6i_KjR$o`2q#dwlgw@px6Nv@2pwh!L=3%m|inKg?XPmvNG&i`& zo7N%p-;&-6E4^IEBnDMW%Tv5b)ag)I>61d2iqABY+l)GuAJJ{0^q~}Z6J9sxRhtbT zQ}!8XHbcmY_#FmCKCqw-!cCzv{W8^$c~XQrwa|WU*-$Ocx_7p{yK{Ft+uz>P+qrj7 zpoeEoON6@Y0bL92$_?0|J~Pe&-Frhl{IE_wp|@4R9*XW@v1oit0xKm`#9GtH*XTd$~%sP`8&Q|VC=Lct+IX7T&#XZijK7+xuGw;m0 zW9|fVMLMZMtXKktsaC-2~p2I%6l z>Plyop;ZAp1A0D0mTP^S?ndsUVM zH9#vawZ#x?MfWVuBnm-2P;@82R3^ug{~7GXKPLJNBDwRyM~umXQJw#?Uqk1D z)W2A62W+&w+PB#*FW@~l#8Gii$`mV|OU+HKiRlHzKS!O5K67SkRvYzLBvFV2MzY@+ zS{D=~E_^QeH7Oqhx=ZC1NaqMO9mNqlgDvQAOri6!8Qi`j$rvWkz*4;eeaxL7WdqO+ UTeCmzdg{)}faxSol)nA{15``BQ~&?~ diff --git a/lang/python/sk/LC_MESSAGES/python.mo b/lang/python/sk/LC_MESSAGES/python.mo deleted file mode 100644 index ce3bab491cc55b6d7e18ec3e8532d00de737be10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6775 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 KQM2ChPJRITM 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 Lsv|`Rb>;s6>l_m3 diff --git a/lang/python/sr/LC_MESSAGES/python.mo b/lang/python/sr/LC_MESSAGES/python.mo deleted file mode 100644 index 377bfcbaa708126fa77af9451be5fe192a1488c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1870 zcmai!OKclO7{>=F1d>;G_d=2~)>;V4;Uk499n)vAit?xW& z@DuP&@FHmaUICv2Z-E5<3jPjX_rWpje>%X}+u#Gx`ak@5VmAQxV1EX*@@4QC zcnx&G`(QWNagebtumBE#CGaiqM=%5a0lo@80Ihw;6O17|dkWKzXE7m)hpiiF#KYEx z5bXgohLqW3t&d>&1p=_TCIx#sjnBKEjOG=AsX~$Z%MP5)LKP+-zs5Bel zo-azIL#hWgUOY=)l~)9Hp1aV=Mm*oQ%JmwRp_Mp<&1j%BPediId76#eYOH3v0%)BK z|F6m^K5vZzp%+4VmWq4JOS73EX_5_1?bv4|Is~IKQkYFMsg{Bwm6IYCJUvIkwgtXQ zg3et?vk4h~DvH_}Ejg!!RA^kDCI*Ja22Kpq>EX$#(NiZ=lcE+%?To96S8@jH73EBa zc}h*3awf&RXKkF1xE6WJx!Ly}x7TrxQP#~LIr@%^k@}b`?MzD^D4*+4=4r|gXTuT? zXv(X4zg(hzP*e& zUeHIyIWCpZg_-FQr*~J+hAIo`3jq%#)I-2_G-ecSb^4Re1_(@m3X% z^ii@bbO(pCZlRE+t}e1m_fR35r4Ps@sAGS;klPXU7mnIxY~l82T{?e0F@cWT1Dh;t zay@-1X1+CB%`eP4H7}a=<|T6*OLNz3nN1vQG#fbl#vc7_e{Ms!VIs&@$ZSK@h?PEv z;%ak+neR-L7~il8HxpNpbztsNbJ;|&z7FMOW-ePt2pq@ThTmnI0HhH!KOp=~NSDn9 znak#ixoW=Le|oR+ed}*{ud%kz^Im(D1&6i(q;&^Q5e(cwq{v1~#~C+Q5NI1!L4%Oh zdc0kS^2V+;60)MW4e@_CPI4Qzwz!=j&Cg)HYVJ5T^|+!4y|i&w(X*sN8$anPl0xCO zO>yZ+4vK3JwLVtb*XW(Rt>@iaOBxSHJKkG&7JmT$?XIrk5IM#<>^2|QhwLJA%S1@# xE36)V3laTyl`Wrp8n^FrVm8tDR=4e&Gn@A6l6QqRY~hiZ8#a9WE~5B5^AA8r=(hj> diff --git a/lang/python/sr@latin/LC_MESSAGES/python.mo b/lang/python/sr@latin/LC_MESSAGES/python.mo deleted file mode 100644 index b9ce140b0634b42dbefe00b7169c268cc193c453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 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 diff --git a/lang/python/tg/LC_MESSAGES/python.mo b/lang/python/tg/LC_MESSAGES/python.mo deleted file mode 100644 index fc92ff37eb9c67f51543be108be8e4b339430473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9876 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 L9*S}UA9?-cu#Es=RZ9$b_ymQt&-MK7t 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 diff --git a/lang/python/zh_CN/LC_MESSAGES/python.mo b/lang/python/zh_CN/LC_MESSAGES/python.mo deleted file mode 100644 index ac41fe04de33c9aa7546ef0dbe19b2f23858e36e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7379 zcmbuDZ*Ual9mm%{ttG9sYOA%j@`%MIHJ1wk6+=KI1WP55hM-RCOuM<;OP1X2p1XU5 zYnqt^O-LYts31XtCJ-b=lVEKzBphk$^i5xMd{d?~o#~9@?cQZNQ>Sm*v3=9;?|F9j z{v<)$?y&jX?mo}&`8~gX&-3t?J8nKM;d&DHH*q)JC`mFna5Mhk`pV}e>HFaAE}sKe z;rTrH4e<)djKRoYCw|n40tct0p10k0KW=Ofp>%NgDb&5gXQ4A!P~*o z649<2Y{c^}kmh*?BzeCBssD!{>GKIl{cimtYy_?ZY2K9}>7jr$pMH?$GX;_!*T8Rq ze+4&yE50O2_k(rd!(awO!5Tb& z2tEhi_hm7D2e=i_L*Op(k6=Bx8pbUHP4HRpH24$nA0Wwp29qQ`V<5UnM?sSFI!N>Q z2xQ<&7^U+DN!kp456@Tc5WEFOBmEjc@}CYq3ig9!m*0R@;5C;k@RFWuTqdht2{vq~tn{slKl zpL3tc??K$;AMaX?A2;Eq+(u|}9{}9ua2>B@NL6Vgy`-xqq=%JFMktVohhlQN8#%z~X1iwX02 z(p{@nc%2ljppU1_f7R(T4HT2jHea=brhb}YF+HqClAd)ubqyt^@52;}Z5A=~*mbSe zZm0;Ir?%D?I)X*isNxA1ZFW5SSsDq`f2y$EJGL)9VtzERIto>()_te2CmZ){frtF( zU2#Qgto3GX=6z|1CJ}^IE3;aa7$)L(@q)m$RIZPzwJ=v+I2JOJam$mN8yXe5BCF_N*WqjQzCO^rs$2#Gk4KH(`?ZMztNHKUA0bvdjUxp%G-xmF|q z)ll}E&X>{m@o%1eanG%84h<=fR$ zsU#i!@(3+<>Rt_FErtT88aXTTuPABx0bwFkqe{qvKdIc3z1lyicHL+z%&iJ(w_rANsiMenKYLZW_$#?hF(H+&g*++X_q_CR z*9iv8@>LREHsE&MNJ>qMd~UKRqLtbzvAC6F2#kd0`4VEAb*r@{syE9~6A~y3Wz>Pf zxT&B@Q^AEJ_AM9(y9TN^G*^sBtAxl??qo`1R@%{7=4ogq;&I)exNJ^RF+u4{7>0sv zL7RfjNR$hS%P4hxo8XzvU))KKyW~_YNp%4b+`xTl&mJW>196HnH$r|TMbZ{M}Eq*0-84b+=0 zYB;bZ(P9Rg^lDbpuq)80>{F>vU@NxT)vT&=&7*yK-9 z2Fpt7x7XL@Cc37gvILtT3#k`qO2#n*OWAJ)v52VJ1{@J&!&Iz|dz!Wd*5}&MXc5H- z)M0ZGhJUKr`exPgHLhlStdfQ(cJI-^Hr|}O&I(Jmb3Cf8OC1{C*i~Uk6JvY9zAR(B9@RiH% z>$L}Foq+?{R4Q}evXuMmA5|851~aKC$vH9VynEcf*z1f8+K0w+2Ne6zsNHiecQj${ zRAbpmOwU~^{K~gv*ZJ&j#+GlvcM1ic#e;|fNj$jc5BI@6EC|I(U-!L#^hnRl zEu0zlUV8@**D!@byc0*UFp8+@-t_FaGk8V>C^yXHS$kwcNU-}(+vgA4y*>8iu&_+# z-MP%%8@YDb`BTU@XXI^r*|dx;V4p=tZj1T2q2fNAn6a8>+qbFZA^7oEYW3Q6>I zH=qUWisM$CD9CD)!*HTFObDL{brv;PB6f@0h^mzrAR`xqMqZg=&f90Q^G7lhhwa&; zq<)bvory8~^aHK2M8R^IHn1@gzGk1~|?f6LogZS*! zRTR_N?suk`t6grI*y`1ne{lsP|#YO<6k z7Nz(iEAq6W$eSF_q+ZI*jpTAgXq_2*86xzd%mwtcQ^$)oS@z2VOKsN+$|M9XypR$Oa-*y; zi%GAAt}grFY-Y3@l zVq7TiEgFUUc;?%I6cMJ$EvOhj``)yD)!Qm`T(|S=&|>X;@l0I2WLzyt7PyiU0$E! zy*rA`;0#Jq{v3I7(s4qzm5r@p4vliE!w8jwBLI- sJAbfvb55~Baf$}Mk)6qLECERGyk2};?i@OYl@xE?UDaqeRIQNy10#;7v;Y7A diff --git a/lang/python/zh_TW/LC_MESSAGES/python.mo b/lang/python/zh_TW/LC_MESSAGES/python.mo deleted file mode 100644 index 3bf723b474065bf31e3991f5914b10a9a0dd03e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7526 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 diff --git a/src/modules/dummypythonqt/lang/as/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/as/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 8192eb723d126ea41fb552102d2849b9111f035b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1207 zcmb7DO-~a+7#{14ZCG@EXvv z4O{@e0fWF#;2iJ=xCHzKE&}~02+4qlz^lMRfI|O$l8~q1lcxx|3Vsg00p0+Qf))53 z_(~rk2#EzD1ZD!$0XYLr_jy`dbJXW8IycQq+)Y9glF6o^9v6buIIRXD9dCMGn-m=1-mAK$iP@;mhg-stn zA%!ql;$>+}R*Xd+3McSwTF8w}1Zo-R&KdYDdZxk%B17pypC*X9qiYdSeQ}d%(H0@+rtVu9jr^)5VmQyTCJqi$(<@+ zNtOf8EHjsR44F)c7-6PUsf=YZVGbo`CTH^db6Uw%Vl40__t9UwfdM36k!HhXjz2=n zbruRPv-gV=#_+zME>-2Bk@w3%#qn!49WFU?uTPsYktn#$kh#W05PI0M--uO_O^?u> zV|LJ|16gVfjUOI3@_rp=^YjF60TNQm$y;b;Z#7aj+>u@tv z)K$?B6}{9sdT($K9nPPj#P2PbHe=JK>UE&(S9_s)UsSXmdm@=`AolES#ilhK71!^m zo^BA$#rbvSuW{Axj=qJe1LRnJ?tRV2iaInMN@5zU0;9ju!^8s~e_Oi)|KHiV9`it! Uc&CTF4i@cVMTkO*PW)T_18YnDY5)KL diff --git a/src/modules/dummypythonqt/lang/ast/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ast/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index bbe53ce956e46d3062e498c72fa2b7c9e145949c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 948 zcmaiy&2G~`5XToNAdEQB16&ZAa%n19JI)~rEnc1)TvAFP&V7rRkK_cWj@&T#ZXXFO* z1*sw5kZZ^<Z5cJ8zbRoHO0;DH)|VWkP+-Fwp4>VU_V zZVc%@*G4EAK)=&{(Rmiaez>!{vGvl~;knY5_Dmv%^l6b88mR!B{ubTghoXw1Ys~Th z8g;)({RZ`$;5P!lb-#|y*<{AjNHb|tW|ad#Zaj-I#%t8;P2a=J-ip)P z=!Iv;^WD1BRnl^a+bVP1x8+mo_N=`p5G)w8a(iz^a%x9))H&)@K+pbAiYJX1Fj{#FObf*&#$NATUHVN-ml zWp3>8Q2{wi0na&LWdRwJ;!Sb^RGze`;zdSWF$0JK*^WS O@pEBrrlEK{tEoQ$K@{!) diff --git a/src/modules/dummypythonqt/lang/be/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/be/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 2a7ecc372f48d28bb36e268d93b0a2eb66209172..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1118 zcmb7C%}*0S6dx78N<8R6FPc0K5*pp^ZpEf9-6Ed`1u0NCcyihf?ZSREJF}KXGyxJk zpmH#BLofaTgh2d2^yqc==*7Q5ubzBc1cK?s+5PSBy*Kao-kZ(*xX|*N;5v=CjL0Ke z5zi6P`hYlx_=xC0d_$Z?{6t(r{6<_vTsTHZ3OSD4dYq7l$mh|wPY{wpeu{hrc?UVt zeMgRTzmO-9&$JMNlEy+g!7#zlk#!2aXwH*SvuKX9ddP1@!T;1cfCS_^x0N%7PH#OKf6;Ft4#=2CHV?#qQtPp0bkK{I{}fb)Mz;4 z6@b$^H{kITlJmV8RusxmNtt3kw>;N?TuKIrqNhMl8hZMghATEqxlr;xb-7K2=Ns_Av5L%x zeBgVtkZ~!m2s?0Sv2wfYP|HpfJtuoTDwamATMqDlDS1X61A3WF{eWB4g^r34Rc@$i ztyW8jsJb=H<|3_Hq&9V^&$ud3#nq&yrF6Bx)Oc)UXk_5Y8cl(B2M_skNE94&9&urlX%Vllxm4vokUq3N522VSav3lGQuo zDAE5)OjC=t8hKgs=Aryn{2-2XvCV$ZjENPxA&CWU#JgfduFEfSGhErfwLs)sxgj^@ zw%kJgEO*e_#b+DBg>X@Bgp1)4T1!ptV*7i>hKwAW*W5 diff --git a/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index cbd832bc7d09138f9d3045ebdab3d1f4115e3da6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1058 zcmb7?&u`N(6vqt=5J7O55L`ICaoT_+O@*p1qlo?JroqO#uIxIT)=M*zxQg9&72>c7 z2{9pY;>ZESA222=3W8m^y8i$d{sF|16VDxVfF=-DKKZ`){GOj}`P1OQQ-b3-avmum zCy~d99v$Qq@)j9JJ|ZWOFUUFM8*&yIJVZzabp&-2xr3ZW|MOu&R#3m9o;z8 zk9rYx3pGS-qhd*KU@AeE4D7l6|1q@mK9B0iIK-?8i*wXtp@p81RMrJVObF^TSmg;! z)uX5dg_f-Hcu~R)?pb6q49a&gYl!?YyBx6Ql4Lbfs7p}PNz~C$M$@C#F(F*&+nhqu~Nn)k0pz7hpieOL9%se*FqY^ zV^FTrL@=4VU79wt`+2(6Dof0KT;`P^_Fc$&f$VS81VmZT#-wU z!Je5Lj$tSV&d8WS)HAiKcKT06J@0N|;8pjLYO4>bquQX}sBP$ObhnUAwcCBN7uPnR ziE|Gy?;ZLbwW9-QZTG6wYjhr>^YfKix}BcybT{-Wpx&$Y5K%9GSpeJi^P&IleoOgl d529Y^6X`9q|7UCP?-u$d@c26#wcUHc-vMnd~`@G4TM=WxG9)x}*odVu&IQR_;p~%9?h!*ui!xIEsD~HOF{HyU193C8PDk0SXimfmfUGkn!NPN0$Uv1EkR26zHRmmY&sx2Vw4ZM&>EGMh}ZE{Pptr`r|c z4Y=|yAaUcs8*t&yeD&)i}@F?IXG+-ANq z3(ODZCi926$NXjPGP9S2Xt6G`R?J)G4#z()3(;i#&3c3N;T0k7v(B^D{#Djx);Fwd znKqs(I21D{;pzJt_v&+Atut$&X$-qtIHb(y$U1bDg`BL#l;FUWuwLc)1bP!UGJ4m+ z3p4aZCsXk|o;4@VjSduz_Z=0YKcWkqoK_b2aTgBzP}`E}hKFVd7AH1>4+Q%rI#RVquA`#} znvJj}!=?;d5H_Q5=~085w}sZpeu>&<=u8>GIv%McFW^Z|i7L>pra7w2k4^scalOVe zTXb6SHOW3<9zh2kW~gCd9!X%%(Wq0T=B$fjX+MlugD?nf;LC!a}sjJ z)#122l6k5N1_~+xAwzIzV?6iYPpSpy^Eok4){%wed})ZSi>+ec#Q$9uPECobfHJU@ Le*eZ7Hm#U{IEw(O diff --git a/src/modules/dummypythonqt/lang/ca@valencia/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ca@valencia/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index b22984ed705f55012f798124e85046c99ba1cee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 zcmYk0Ur)j?6vZ+6)JLCvxF$Y8v~=AAnI%g^9EK>e;N;ml%Bb1er7eH_AbveRi=7(q zB){~wJty~kot}KQypB9)o(s>h=gQM4^1S-bYkxMLy;7s!Megu;f#3w*mSEY36oluq$XY-E$cciagEVL*GBhM4w%hKxp+ffst@ zs#x&@mbPC95Zo+O9*v>TwIR!%5~vya;Ma$@I5U2>`VkgvG0!o@Gy2uBBBvvVm7 wPE@WJQWXrMH|h4>8T{Lb(sFHhiAUO0mVv5&t~L()@H@tB1?Mr)P9L?t0X>>_EC2ui diff --git a/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index c83734ac0d2be4665669786134194103e34f8d51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1041 zcmZuvJ#Q015IrD(I7C4TkPyYBAhHE}A0{%Ckpv;l1qv-us(0>bMAIew`)5N zqNAjRCRKg_6%8O!IT9T|fs&eOZy&YSBi>*dkaUCS{`f-A=H$lVn0q}Y+N)0jql z2Eqo-BvbxwutcUuak|<8%Sf4rq89PG2h-I^4G-=?zm{2vTN#bXlE@N#d!F`9=}*nT zVCm;L_&&HWISCvd;Q}ou56{5?570U1Lt)^Y^Sy0eJvIM diff --git a/src/modules/dummypythonqt/lang/da/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/da/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 1e836027f46bbfe1aa5887ffee5fc481e37b31cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 888 zcmZva!EVz)5Qeu8({+JI*0gu5t)Xib`9WwxMS>_QcuN-nDioq!Ho` zxbg_R1DrYZ3ApkMoH;RWN-I@e`Sb7Do!=hs&hN*IUj>hQ%nN3~JYc>s_4v*_WPUKq z%o%f^`NKS8{xVOQ#|uKVSXWp_%m=3So!t^*mGu{E9WUG#;yLRh)+em1thKMh%9iuN zse(hXI1exHcloKV^G-d}0fST6-%&#>LXJEsns_MDdzB-Mtb^{PEN9T4(b$@Og12@U zij6|2C!Dn;uB{$voE{QZVlc)VoII^P@I^N+hfv$H^A8@|A$T?O34Ho2`pzC>N^&cc zN9eq^CV_ruW4rUF2S>ew!>zq{!2wp*k=*sU&gAP!?&ZKH5cK!t0e;lAM|Krq0?kI; zl5tbUEr^>*ytdll5$q^Wa^RHlg(B+`@Ts+gE_d3ad0D$&agxa=yfJcss!X7(jP_$# z9urkQiK6Lr8dCiVJ;Kv4wPlp5LY2y)kBA*UYBn0JILcJC66|j6_OAXW4jaLSHH3z% zm{nXR;VDH`p|n|tbgZ05YQG-kWdfNB`o+YlLT*}D z@?M(iJoN46I?Ny2%LbO(5U;EUqG!O&F1vxFc{`MtWmsV05l9yo=kvcIBp*~LwhMg% w)z5EG>il|BNZx(J)p>H-Tx*!xJwy^+Btk%U!^?R&oVU_NGI*UM9}xG&KOpM)vH$=8 diff --git a/src/modules/dummypythonqt/lang/de/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/de/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 9af7a66146284920a510df9841d0ffd13f0524f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 896 zcmZ{iL2uJA6vqt=5Sciz1G{i|yR8BzO%G*c>S46qRJO6MEj!~TuZ>4yN47&(A-(}u zz6(g)I3PX)5}$!HCth0E1S(d3d4Bf$+m7@9zOnY6QM*k%AV$PG@s6n42jVXAk=Q1_ z5O;_l#3u2RxKC_cW2{NBMlmH`689+odY!R=;x~%by6ZQVx=o6eE}-~?;yy)^EE<(E zO4-^ny?o!IUUkl!)yN(woWbdl7-QyBW}R@Qg&eIFQ-p~&&?)nL4*j`HwK{e1Opkrm z&Sd6`gO0Zl|x16 zm=|d~`@ns|U{>2?ofE!jlGg%CwHxN@({uvB;3OT5+6?#*d?E zf>+7%Wwv-mOQ^MRWNr(&CilC-l1y`q(gj(9q-y#8!#kMxn4_Ea2&l!cL>Qb hlqfBCMwDctO=US&_1|dYaESlgxU2AGj9G7pI=_d1YFGdO diff --git a/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 283b865e97553203f4f88898a8e258136e264cb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 933 zcmdUt!E)0u5QYsD7z|u`fD4E1Eg6sEB&T{;|37*+ILFJVIjRF7gSn_7%C0d_!u; zcjON86M2aILLMNS*BqyXzK;G2@)ohW-`Cf=dpFj)r|7Nj1$wJ{jo#`6dX%gTB@Twp z#yY%s-@=jY^QN8YfnWmaYn($th^M)FFKM=tN4MvBZ#JN+wKc zE=34YuYb_n8^B~RJ{capa>uNa%8-%HcuKbCnI^Fe!Htf{n7!v#Lw2ZPAv7C7iv&#) zv><4PLHlt7%{`>rkXTWn3u>eaVV`O#pf8Jp3k}a!Ve~hASt)6xC@C+zM3&E=*raXD zA+kB18;Kb$Ll}sx;5vueso;jCaKJ^D%CZi%+?Yy-zQ0&3JY#F}89TR`{Dc;?q>5?Z zU=Hm!8;w@rGx26`+poK$;b?Gq0)f|X`%)Mtu=8bwpJv#(@vDMz(SanVN;A_vjdw}= za-Xd>V~Pw!B2#QAg!Yu1i`GL})pDa^u4qAar7H0XM70Wax7mU9uv-(b)rFwmasQW} F=nvV|27Lek diff --git a/src/modules/dummypythonqt/lang/eo/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/eo/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index ad243b6ea8e11ff9bf37c9b07d77a68fc3771728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 934 zcmZ{iPjAyO7{(0@5CJYbfItYnyKUOsG(A*RMiFJp(Ad9jD?8)1ZtFF%qu5zjAx>O4 zaOKGNfcqrA1t&fLTsiTiojQpPE5AH>9l!5uThEXAxz7yaHh2PB;4b(Cit!cP2j9RV z_zv!XU*IA510I0+Ym8N)OVAJCEx3pH=XJ(bpueF-{PYH6kD$xY$Iu8GLEl1=G8tIP z5VE;xID6m1SFz8V#Y}^=9MS%^Xv?^S$U5P2ONq2r^dg^h*b;hpT9>+jt-qnS!*D#$i%d=gvVX^yF^7=chd0Kw8@IG4e8x`*38VY>^Q#J z;bcga za!}<#g$Gp%Dq&DtE@ODx!aCl{gtoD8CJSjR&m1-Ma6rw0ky@S7vmvI^Y4F13PLz~+ zzEaeyAzk-#Tp4dkk%Sc4RHBwMv^a1swW05iMx&A|>Z_hSEp<%dcSI}_kxA=2Bw4>w zE>{Cz8h^>#+1!aPjvAE8-kQ-)YHV?w;tWonIzNqt(yP=Nh|Ee?f79CFwTpE{tDekw zq&udobU&n8Te;arLz2d8#(5@UzG1Qi7p>DtXzP_#nts+7H7(RBSX%Yit~n7iryNdv zA_}93voD5l^;A^Bi7u=HSDDPfR`D8%xbHyeo%Z4{)^rl`=+wB7bfosE;Y?Aoif(=CN0ObwIRAP^1JfldCN`qiZ&;@=2QqPd zy~p=tVU^Jlb(UA2FF$S3UTb@2ee;F4Ept;i-nIkP<4;Bd%VQIf*V*LT@=%pAd{sCZ zQMD4*cv$6Ojlyaa*6&x)ybWO;j|-t~Dx4`ITty+%2c`ETOzOc17s6vHvWRwap_Lud z;?TL=MnNzhk9}9hs=hq(6O#prNJSUC`Ox2eKZ|TJJlpaJ>?O?P@`KBoD=`6m~V9S6gv__mEi5iJqZc6oOJgF%Bk9 zOJYqWP9;kC?92Pk*H5VxWo4X{LK#1+o)cHL@y}IQ3(1i2e~Ad;Zn}y7pWM__3GNQH F@*76d{_Fq% diff --git a/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 54ca848026b74fbc6d355e4a3aa542d0eea1502c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 976 zcmZva&2rN)5XS`+I+)=A2e`n@_LdANj&leZmjL}pq0rDYO*7m;aW;;EEqN@tX<&E* zxWNPP0NmjU2i}5b;KGFyYnLW7P>p~7YbEWjKK94er4NkSGI4|G5toR!MBY9Vmx(V# ziTF-jBz_XtiQmLE;_4a3>ZE1T_rwe03faHTGIob_`5dhwy-%9w>5|?g)uijB??}m| zXyn4kWJ|~9{C|OZ`99C*BWs{=3VS*(3#n>R(lp6 z>p_KWL^60ut5(=QvwexveTxa}jqwyu8kPp=v!_m1Aa@%U2`730M$C*4uivmvswWs& zzCGl9OpVmahtAr@leLE}=(oE2+q+MlE+#s)ylp}`T#+3NyMk-a`@lu%8Ge%@|5;Jd%MfLuqVnVtm(~PNx-{r;;N)$|Jaeh(s(> zG_ECIl-~Fczsn+dSxP z@y23Zo^6CFZ>c~Jr3!s$45XcJ*@q&R(}}WFM0`u9G2OgM3ez-et8m_7=n86Jvx{TwK&31!5D9uX;`6~p}YQUMqN9e5xndQnLu8CV%eU1488J`%4WprQh# x5Z^wnuzvAk6ejxLfzdM+p-!J|8Jj21bDk`mSMNM0v=%!$8HAw>=r*a|{s5Kr88!d_ diff --git a/src/modules/dummypythonqt/lang/es_PR/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/es_PR/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index db715902348caf2e7dd713d887f23f45a8bdd8e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmYL@&riZI6vr`o+R?LzXW{{(rRxr4mh6By%%aFLCRbBO88utGw4LA|;=kwLVuuNQ zlTY4zdB48Dmlr=hr!&WuGR|% zhE<#`lf|o-@kVKj=B5;D^w5?D<%)urE>On5M7M(;ndKA$pNtR*5E%gpC<$+UC+~&H zvSlSlIcGJ6Wy7Q}Tj-}P*H%F$3N?WK*4oBUjCZ@;&}t@)*zoB8z wqgWPdEo4a{{1Eo&o5JCjmsYK26`Cns8w#>HlqL$s@SjF~3D*&j!Px8l0aRvk0{{R3 diff --git a/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index cdb2466fa84ca8e127a9762d324b14318cb28f02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmZva&u-H|5XKiMAY5^&#GeC)sf0u;SUZkH6gkQvv?(fWNZPtRvq`3jTYJ~?j+;h^ zH{i;nv;v7+4u}Wf$}@0ALSpPfBUN4bm(Sy!Z+7g=&!vS=g4bQ<2@^7l%txkJpPBp2 z7iNX|#@u6mF^`zv%tL1Bh7dK@Rn{@{jw$MVzbV8s)*q}zojr2*v zl`ZAs6v3fbxCk$Q@9D|hiEDm-#s z5e87L_%-QQrC$TT8u<0+6<*G^vLwSyX&WmtSpXe1x2dr01@)7k8_=kMdY z6=%(8K9BpDrrapuDS2tEBHe(&SY;NexgT!G`aG{V>JT&8)&nz)^eBLOKcdS%13+?m zah|DIZkR0Luc^~Aw9RS*E^eDE8kU>juQnX9&wu{^Y3RmyoZH!%&J%9MQgotXoDTxc z&S&Q_x?(GyouyVm66xWx2+PcQ+I%9eY=nhh>>+~D|LV_OWpN&d3r`ur>?_6CFX!Pe Dfn)w$ diff --git a/src/modules/dummypythonqt/lang/eu/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/eu/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 43448bf58ba8c76c552c0dbcc0761cd7e22338a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 885 zcmZva&2AGh5XTJ^5L>~aLU2K7Dse~v?`9(rm8~L_rYRI!nzo^5oa}VtX4hW)L7F1o zfGh6;Pk?v>PCNr=BqU~A)Jmn+{`T*&XY8>(KNsdcGiuj~d&Gd4Cq5BX`$F6#z7jR! z8*zj9McgHR6L*M(ON_Nh>!f4iEpdzN@0S^SK>CBUTIUbxebV_WjNK-ENcx2I87YMv zH*#TQvbhuU^nZ+WF+IH|# z4@1_?{!;%fgctIo$OAGY53#UVc>^wQ*u+8r>o%u6h#6n z!oKqewXt)hO`>QzorbPjMDF8ZIMPKl61gaZK^r-Wuu-$oXvGows2*&tZ}!g46NinU ztCd4VdCW>m)Zw9v%3Mgb45P6y7G3+zV2v-G`Bhu(qv1U@(y3Hg0!u^bPP0q^ebCRn z5jkJerl8wY<*{ko&1E?0wrdI&+Yr~619nmgFhpad2+zN6E)<2JdApgf!$WTfj`PS3q=;NZ z+K3*XkW0uuGKzdbE+9XUYsfF;Dl&YEkPPY=>PzG?as}gWrwPfT{zScuYMmkECTb4# zI%*wt9`!XUS_T7C35I0oAUvAS;Y#;;R==47!JDwWz)IXRF_Ma@NP^F$WHk=eAcS1x z`z&vuP?_+^zC; zZM4eFV?GPHv=myTl}@EHwpC@;n6Wswm_Pnb+e{fVflypvf2{_7fa2@QYIw{Q<4~@% zP;xc#s5ncr$9ejwDi3L1l!J;ZY7S&et~zSdfhsc!UKBEq&IX~6e_1pJp`1vM!@+W5 zRKO(IW8((tw|kvGw*=yMakt-&yCz9KqwXY|kZi{v<9!Tv`)!Ed#(VJ&E_$7KC*C{0 zIheZ9>-5_u>2;C~T@tN0ZRu(wq}M&DwUumYd;H;FCmK&KNwg!``tOl|w)gR_d6;n6 U3M8BT_V-uqUN_m+T?{VUZ(6-i`v3p{ diff --git a/src/modules/dummypythonqt/lang/fi_FI/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/fi_FI/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index fcc562306b363bf93a2a5ceb06c7680a0f436c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 946 zcmZuv&2AGh5H?UiECQq+-~!TwQzGzgHixKe38J(K3h7VUZhHkMaS}Icdu4k`Bg7jZ zapDc~3<%D9;4OHDo;fj_{z=f$e*1aG^LfVB{9a!AM$m2}9wTDJUBnkeVLuS}5I+%R z#4p4h#0laN;t%2>V)+^&b>s^2SHuUz1N2X>6H-DZHwd|p^c49Ca(Ko&$Q$TOWRxrn zB}F<}I(0Apw{TVTd9#SDf#Orx-DEwU_~=>3TxLOXYuSjyP#f6Dq?|!_=Ehp>I(Vmh zK3Pvhe}Y*h^3U#};M0A_QxcE)6-o>X3;4M!w|yvNgGIq3-2=;JHiA!|N!REj-gmS; zpoiR8p;ZLkwe`;0+a??~_x9U6+uj~ewQ+RIj>Lez$wrpOIs&h|L-+VcQE2D}b3B4t zHLTOHM#DOUwJ2P9Rz>qRnRPTaOxc7vZ6fFhDK&JmBMfC3yp(2gwthX5OeB6^%U92f z(_WxhjWT>N8gnKiXbGi+9YYxx2~&d#l*i7cHVT62bn3gJiWu_a;)tNn5+<49HgG7m zL9JS?hrv+1Z?%Jpx7FTiUfwzMtKPa+jw|eSmf~d`KXyTyFrikVKW4^q*Eonime7_q5+7Zq3)ePkt8lt(loga35LQ+_a*$a8 zyKa_$S3(M(oK6QuXc3#RBvar7c9lpiaG-qBNyKEr7)YTqRwCQ^JWcbt$>(R2RcKW{ spUh-Fzk2ulWD@6dOaiR{1^=INp63G=;R1gh5XTn?AP#6!fRHFA6^UT)e2!#U7ZNazjRFaA5+^n5yRp6DZui*Ti(?Q4 zJuNRl#~VPMg14aH3211jm~#|IN+MSGyZ_Ga%fm66G2j?L-+8uiM3UM)u&pl}3R>!OFLPnLDU6&5nIRtymO+Q4d&Wn<`!-B7D7 z2QPHbXU$Z`Z^&zootfQ}INEWTv+fWth@@d@fj)QPv=3!iGFfn6_rQv=jo|$U)-ie? zW5?GLzK6z2ts>|&nlBsATd>#K-dWpxv-1)WmDm_iJ*aW844Z?Ri1q8XTl7S=98zn(N3#O z$kdN@w(_XVSf>PPP|&6EE{ZIIwm}sSVSeabZlfR=jYhsJ)5|^{mT^HWQb9@4296?Z zP_0yIVbC|hg151@(KIaGcW-93HwLPlZ%V5D$g1=$3c8ZC*e1E0^k{ z;Vl*GM5;jq^`3OoT}IG1UMDS#NO@bEjP6Lht^^pz?Ha$Oim1-PRxF}-A8#7@RIEuKl?ye;q@&$OIlC&dEoGk&al9Di=S ViLnHFm;bE+>*v-_q=QKv{R5Z!4I%&l diff --git a/src/modules/dummypythonqt/lang/fr_CH/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/fr_CH/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 17561fc31c40f96ed747da1063e3c579c36a8e8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmYL@!A`d~`@Ie38RvfUm?U4jW>t3;6oDp#|%OIg$IHoJ>O-^17QS=?d* zfAVE!GV^Et-}AGdj?;OIe`A*(5 zlf{-59HpF96k^R~wt?=l5%!zwlF7UW-Ho-ip%^z!)3=&QBi4M^&s2poRPol;(i?i6KaekRo&W#< diff --git a/src/modules/dummypythonqt/lang/gl/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/gl/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 33cbe602c081d24e8fdf55e36dd0345ce0003ed8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 889 zcmZ{i&u`N(6vqt=(1JLy1CtPkH;F^5;iT!IDyb?|x^610tn0dpBW~)Z8HpX)?k^$! z1FrlL{SV-Xdf*S>&fmb93%sPGLsPNx@i)(Y-`KI=kDaYg1lwKYG15iuAs>;neMash zUyvN~4cSJ1BD=^h10ElaPJX@2IKoH|itQ?OQ8-g8B^O=cs7Q z8m15o$<``d_jm9u-RJFeqy~ad;q;jGd1Pax4Krg6G1r;}9EMWC!8nfR(4L!-6sHDW z%DzqNQRu(JtUYpVwioj0nc)fPj`#*A4u=}>F&n3CNNs~`!3)_3&F0#J_a8`G$qViq z+8odxS2~o!gLbX{s&>?XUZZo?Jb7((cp{adEgggd`eGbt+Lazy?GxJJlQ8wr17^4f z#e!R+ZjrhraEqQ>-Y;OYj+r*JtC-LcGg5i*M(X9_X_{TeNfC_kKxmh<*n=a6{~s~| zxsfr6_8ezAo!TZfheJNIeHlAGi&)GQ*N#Dtc8Y~U$#sIr$y=>vt8w)ou3fO|QW!39 z{ds~LG<;^9Bx0ecfInhNb5lL<9@6qvUb@tfE7}mg9E2k9pxh75dY>Kyk=2gIibeEL zsu)jEBw47d#R{xmt2qICRdDkai=2xQyDS3`a>DG@NX&(1GY$z;6PEUD!=>7IJd~`@G4TM=((N9|TCxYkg%CwHxN@&cSxR=>P1^;05MR${v8xIE z$(NbQ%%AyxuCKm3UKgGl&zFSSu%#!`WBuGdOW{q%OHsL&&$>SmEN2Y=WcnUHfVy3{F(8*HRS>qEG2g kIT;iUO3TLZ5>K?LECW^ljW!O4@ZZK=1-CKK-Vk+u0S{(tx&QzG diff --git a/src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index e6061d7c42a54b21cc2d92d28722f8c8b67f7f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1089 zcma)4O;1xn6n!dcd`4qf=*GomA%W=os;1(rMG=aid=#jxowh^Y!}rm=nOYj-&ZP?p zMMFYZ7&X8z&|l!z-E-w{FfLtrri~!lg_E8+_s+fNyxYlq>+jptuucP)ff8^QcnPTW z5jY2Y0)~Lkz!~5>a0&PcTm<@$X<8OM4E_o{2F@eDbwbl};3@D0@C&dD-UJVTzkuh! zKfsW5)^Y4ewZ3k8u%AMt<~*rR#wg-VT9{#F9+=34WU?VB%z6HX0vHZWecA*rL!t5U?EGm zup|`1%Gh?+u{>@K>$B6dg~Na7n6^G1N0LXFtX0S8lCMdt9xy-3QN?44;4=THG--?+ z_Nh-{VxtgM;;J9jTpB6+@?c7rJgygmM#2JPGEPF=Z&dH3B7Y-C-7r5CQ9e%&4GvO7 zR}dhxhv^R4tsZN*kayA>TfDm(Xs*<-HPYqi<_KQ+4IghS589^jq_%RlAp& e_8%RuF;zR=Ix<&JGqZQgE9iI9-E_b6z<&WTt#B~_ diff --git a/src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 9c22e2c82aa2380165da15bb995ca9cc21eaf546..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1221 zcmbtT&ubGw6dtuIM!Zzei-+m0RX527jA3iU+NN4i%M9Vj4xzg6KiP zgZ1D|oT!MX2ugdYNB;;x=0DJLPky^87E48_kNx)B_vU@?y?G?xdwZ4%Y(H=er~n6n zhd^vAz#(82=m)+62Y{czQD7Z70`%@8Bo7_{-vq7!hv9$QO-K{`1AH9J_Yfk$kHM$F z>)447;Lw9a(*3%jvA(tr^8bQfcsQln4t+@u+Q&(=?XVl7QS?nDU1t#;N4s`x6Xzq38An$81kWQ+dqd;iyVY4Rug E1=zC*^#A|> diff --git a/src/modules/dummypythonqt/lang/hr/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/hr/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 6d12c7ddc65d935234fb183ac6678b505653ed0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 985 zcmZ{iJ#*7A7{?71I1DTufPvxZK(7V-7Pz$M)P<6!TUZQhat&kqf??c6t)QByE!116FHm#eThuw!52$D< z+If6qXiOZ3C+|zx%g=c+A6WuU`>?%E8Z@>sQkv*YK|+-xZ3-2 zn)*<3y|U$%EUye+$@k{(x!BBgqO=uC!c|PPkUp%7o)oZ_HEGPgyn%%{kL_*|M~_9O zVOBWRpXIpGT!!KzQOd#Ieq9zvmR%X#MX+C30^f%i%Td3UBrTku>sIy$ysjysDU4?U%dX>5ufJE^(dqT)CK{CioK zz)Lb3YN|A6C;sleoK1ckO6BOPV0w zfGZEcTL9vg0}sHRXW-lu<3vgkbhO`&$1`J(?fJF5^ofz&CLR+V;vVslaPoz?Pkbd- zi66vW;y3Y#xF8-9%hwpIkX|F*CEgMb$evzj>4Ftw8^QYzteu;I>>=Oj z^Anj{Wpo7XMsv6EvIQrtqvM@}*WQsFnjHDQja8q&C}PVyCIYX0z>nlR<#PC@Kp8=~ z6jpdx=3xcGauimdmPoukVUc%op=~PAL!aGuA5o{Ma7P%4{ zRujabje=k_8u{qb)u}x9dnOBdA{Cj)r45jhY)~$hDq)Zm!J4i73x87^Xt$8uSv8TZ#2Ioh@FyjB{I^%AB`!&-9g!BdB&2E((nxDZF-C|^>Aj|dbtMkVSQD@N*%(rn#Wr47^dF_i(WXM;PkWWh3WT+)Dl5bz~5cK6EpGI zu0T{8=~4UC4cj84$6Z7%y1^~Jn57P)1KJ6)*5toc=N=y#^8vUv5EF#V=>9;=n&A&~ C1NGkk diff --git a/src/modules/dummypythonqt/lang/id/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/id/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index faf378083497e7696cd213b594325fb1e0c1b4e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 901 zcmZ{i&2G~`5XToNAdI*KiC#DioLa%!aSmzZ5JYKH6xz@<3E|2l-Z(On{X9wL(3#tbRwou->Y>Z_ zVmX@9s0Zv)??8%K&x(}wCt^(|g{1-d?AmS@inMUC;He&h!MO?G{Rh^`^r;wG-U|6Z zWJYQgKxcRFaQ8(M2F-4-b^OZdid1Kow@oBN{ydKi@9O}Z&N1(bce2Rg`)EY~m9k&u zeuev0@GF5|dsHTKj?h@%&rq2dtQkL;5<#N^cWaw=> z?N+;aaYWxOJ9}DLp=fLKl=g1Lnf1~brK-bdf|(Jv@w$J&YZv2+rN$!TO*PV?R8au6 zp|s~a4M2uYC(bjB`GL+7x?q(qT+{IDuxvKUb%*uDFvrQNIADlb?*5CV!q5>{#gZ$V vPuD!Q%MN2XEglj7UniI9hpLOUlmravjwb6SUB!y>NQ8>e;uNVGs7U?-MhpJb diff --git a/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index b2f98c8d37a5e113d01aa8d42d65fe9874760175..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 906 zcmZ{iF>ljA6vq!JAPg)WU}1P2kQ(4(J41+EWhiZmLYp>CLdD3%xj5I_caiUzG@`6b ztgJ|UgH8yLm^|<;SXo(En0QW5D^=miKmYIDy?6I~em|C%-ZQf6#66-%+$7!+g?%P& z6JLl`;yZDJ_(j|${t$PFQpQrOIrWD4ymj*Q+% zcxL)#wh^oFh@w{5h1CNkCtZ|d)*HzMnKZ2|(1Qz?%TS~ZW(OXcK3Fle0la?0+Nn8| zA@b&cAIQ`yqXTHKZ)~qWZNNdJ({1kUIvqJSDe{($)PO(9BFlRw0H?jjJMxt(a`>h| z89>GJtK6?}zY2aO@M{k}GG|9v&A%a@ zbxRlXPx)zPk5nxBCO?JYG*yfHrJKk&#tae_{l8@{v=TKM%Rfj&0dnE4|N3jzC^Ay? I%cxWS0>&!Wv-7td>;GeA`4gjdjkrgI#0}yDQMNC{P2ww2 zCB75aiC@GW;y1BMtSm9sB(0HtBwi7>sQ!70u{!C}<@ve|(z{fzlintMK^l-6QnJh% zSs0aUd0sBwSE*N?^GZ3g0a{LAZ(9sx;!b;J+5q0YXZ_q9%LsXI z$d6=hmC*t8H#*NYo^;`;yMNHzeeUeb%;d;-Y^;X-aS>Y{ngE>sF5j0Ys`T(pfii$b z-EVTg!Tl!qjlgf+uTyijg+(6bLfb^3$pbhLCo)$C9@=@w9nfSXqDYxXaVk{eMkZZ< zP%hUZw~h8R6;{srYJdRZcrUV~^Xax1ZY7;f>_*>~k` zBboEAj?7T$IDpnb;o`&r%=U8nNs)_$Z<#!$JJ;E)wC%a8-YcafXz71E-C VZ=e6OI*{!wMcSYmsYuL{^arlg35);$ diff --git a/src/modules/dummypythonqt/lang/ja/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ja/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 4d131a0f822551962261a6c2bd50591b63394b2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 912 zcmb7?&ubGw6vs!ciYp@Ypa%uVi?rxuvk_w1kV8#VN$rocU3+%2nIxO;?kqbK(;z}O zs|dB=L0S<= zzyeMKt3YDgz!~5JFa&%7P60oF^T1Ew958qUp)B}e@HTK4I1BOTqX=CA{}uct@V~$( zx(mnpy6fPJ5Kn*yNzb4JL5K$W;okcMjFNL6Pcoy}XKg$?Nh{1vK_n!VErC5I1g$e% z;~^evd0q#XJF>z3S&1ijC4~yEV=qG0W%SSNg2USLk_E_WutSuPb_9k;9y*=EiLBb& zu*oY}(2g+i{RgNV@+Pw-DOJe=3x&gd6PHH|w?}Uk@j`KKzBDtf&9Q)ol1z!ZQzbWB zbwMm{Vy!$w=GZ+a(U37JnTa!LBTI}7F|ydmn8wJ}G?+F?g(Ox;ec@8cLlawck=0tB zgQsboN_s8P-GDN`-h!(k7NeetCul%@CKw)SNErxI*W2xON+!!VHMW$pxu@IIr5+8L z&?RVuo=K;(hTf$5ur^hiD(-)gkxFX??n~ywNjd=>Rk9_i2QGE|9JU)Y6invtSmR`5 zzb@IT#zIo`ZC-W!x`{_Bj@&z^iJMd_yRDGAWSoZ{+@~M(LXkIexIfINa~j%Rf2X47 zDtg%O2BhL;6~9vPClzh}`TMH7t>O(8uS4$p%KP0%PmtB%Rie9T| q4c7Ya22s&7)m>H5*58eFVB-xHy->^D{``Ub=Fa1fJ1Z}H{qh@!K_->} diff --git a/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index bd70c813096aceb16cc663bbf8465dcd71c2a6cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377 zcmYL@!A`d~`@HSqw^VY@w$x}-6P#SlaqtlZbKl(p?{v%6UIJ$yZ%#jPgr zCtqeJGk@m)IY0aEIGs2y99NE0$Bm;^=(uysTUXnggA%RYd1hg{h85RFC`nN=8qY?L zFz$XJB0gwSA0VUzJ@8mr( zneSN6A?2*1XvV%+u|?gjwY8xbH%-&Gnn@!zeBaMhg)>&NifL}Jbq<3A-yaZM6u9Tj zr}Ow2l=OXXtfb}ALi$;|1eWhDu1hB55M^7Y4Y$#2I)U(b*S^|t4YADBTF9KD@J-l5 jN{WiYOUj*QB}|mA3`Mg38%-1p(SI9td~`@9y~yF=ynfeEx`nFF&jiSxN@(%WvT48o3;o(h_C0f*wqC7 zM>DmD5;D}R6~pOxG8;d| zcoi>Slf?^Kibfj;b6d&+9(JXLOf!tq1uVs1f)Ra;DI=8hjyX6)9g$wjWK}$ z2@yP)KtR$GO+;g&kwi2l;qHIn(X;7p6VIM}+md3C$^Q16xAVT4x0Cm?xoM5yIE!3I zV#s-91@T82xq$2;t;l!e9P%5vg8V@)Bh4oW38S{5=8(t8MT~!(B;*F_FVt(OmrfCK z6;(y`eSN5pP$y8)QX7~`FeFX&u<<^FGr!K${+BMWSsq3PX`E$LjD(~zC%|Gt&=iA7 z?m$n@vI-C_$TYV{B;4n5m2_v!#588LkRz+(Cd-dWmL;(?JI0BhO#%4GW0zI%ZOPh! zQ#=lW7K8y$pOL7;r&vNN{Yhn3SQW+8{GpXFm zrGygW1_YwR$|!qc`W~f+N@hSPsD~9jr08MLLx$ddGl(NFNQG2l4z)#wO70j?*_-v= z&sH}U;C7bdweXZ_-EGWNo5?%3aIcVWwNp8~E+xjOWxxP;7`34_EoD|1nwHP!Rq1bR zPO=#_!7VL8Gt{CE6PiSa&_cmrSl6bx))pA*ABr6Qqpk)6-Q1SU#@Y&5EMBr1sbw?N zv^yY?rjB5;^I@!4X+O;KkD6qT60s9JY1%0R+T*5dRB6C84@5ILhh~&s?pS!kcD5FZ zPQ3%_)6QT=fOzvu?wg{wx!Y(E_rVbxnM;=K`X z{bQxP<8JRmb#B*v_o=$J;VqQC&D9oibeBfc99^hy|6l&WsauQg@{+s!Rt2xL3kTkR gD*9G*UvGP*S->2xv{L!950#x)-t(_@TdlGF0z;ogAOHXW diff --git a/src/modules/dummypythonqt/lang/lo/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/lo/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 61b880bb726cf628303d08f583fae7986774c24c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369 zcmYL@!A=4(5QZ^&>d~`@9z1At=yngdmT*8^3=w35EBCsTrDnI?w1eP-_R)8Q3)DHyazl6-lIGgJh_R2$W)qg zD@z5rlC_{yY3bDlvGIbj-EP-KCym!@weJ?TW`(R|EuHcVgWa<@ih7(?mR*zCWR@Pk zi*N|T#-$Z_kd<*#l z@)GhlWRwi-EUxI1iJ?1MFW@fk^L&1?0+RP&XOq==WTU4IGns~%Yt7mmS}KLLEROq7 z?VFC0I|d%Bx=mIi(dc5<6!{~%CwQ-BctXMs|A!Kfg$Df0Kf^ZUvgY8zeN_j|`r3!* zFGw|2`@CW3Mw9OGR0}12sIII&S$R~3z4C5tV|&Zm<%voSt?0IB(uY}F(@^wa5-}kcpwVHe<|cR=uG6`3UVc@Jr?e~^swrgKhq<~iqfUK@ zj8%=Yltpx1r7^yuOa`tF?k~V_8_Y(03J+F!-?<05_t1)bOgh=3ya`+1y}|b z{L>^@3ZR&aPHHR$^M(Ja;bDz|2BrcmxC})fW(x}z*<#r~)1z5j7hTgo5K50nFFXF+ z%#;yaL;d)@<`RPmz63vhCt{{;QcE&zc=Y8>R~Qa4MyAL~opF`Xi2fBht*=SQ1oTq| Xtzi>m@hHWHQ~Br!$F++ShvWJixDz3B diff --git a/src/modules/dummypythonqt/lang/lv/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/lv/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index cdb444be01e74d2c19a8a37d66317e71e93d73cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmYL@QBT4!6ooPRv`3$PxFkv-TH4Np%#wv54nqW4aPnS988xF@+A{Em`1kxRcACIR zzVzJm+}!hXdGXzFI&)k(t{vx&J4da+A>8MKd+W?mu`WJEYSCncmO>j@CPmmCi7QsA<9BqG&7l8p~qcjP*O1P;yGG~O4d8*iCe+IC$xvCk7y65&uDNASu0FLE8bvBCR#IgQf)8nr zH5ufU7w0?8b2KjW)-X`z-)O@7KK$FTt!^j@Lkg`H)Rr_uN?`y5TpXIAGXtP*@H>64 F@e2W)aufgn diff --git a/src/modules/dummypythonqt/lang/mk/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/mk/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index bad77684e145e2a80450640ec7fe278c89d01796..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmYL`&2AGh5XYCV11r%(&m1NPqE_JSdIeGBus{fD6_L;oLeIDxcWbh1uWYAjAA}1M zZ@>wuQdK^l!B4=mFq??>Fa0#0k>@{S`S14KF9GTf@(_87+(Sl4txw1Ugd_J6jeNfq z1m_sHkml_m*v9w_BbL{yy)fOV2TH8q{fHllq80QDnJu6cjbLK*XOTHFoRdRgtkjCZ zq}PAj+aJK;VESQr@GhK+N*hPUHkWhqdYM}?(+tAN0hx+ZS@)1P+zAFrOxuJegtmbu zjCLN!sBpxsBQwL5Ex6N$!I&E-6-=dd`qVBYJTKQ3^S|(_GTLcXa#^%8UA}lyJ9p4X zoaona+xrlbd z@o+r2c{OdtVP7jJ6mEN7;d7igb5T`rsk)GzaASo_KhE|@=jL8L>R1>uP??@fl{4rZ zNq4;|gK`m0ilyNN+0&-93{JOUa+ngWGp6EI^}b+zeqKi${5`75t*>}yqX~g)UX($AZ(H_B4HE4 zC=Oc>1C%?Y+K{QDLTA)S6~jKwsHWnKD(J!9Y}+Nz=)!Pqc)~rY(x;EA4WHn=NEb9^ zWXfnB!wCH=B!`_-V+tMn{&KnWOmzT1Vdq{Vb3dsJR59%v9MXOi1kKRTGk@0|4MzRz zw}xKe_M|XO;2l>5KEkkb;};p_q7BI@RhpU3o9Q8GUHht|PM9Knk;pk0X$-9yH`|NG zkZ0~VTPT{5L#c8dgDC1&ccM0I%Fd2}MhC*(w(HpPi!FcI^#$1S2PRv7v*jOK{@i|; kEkE1xyIp^(<0bm8>gIRt+tgLWg|BvfiKF#0#t#kWKdW5IyZ`_I diff --git a/src/modules/dummypythonqt/lang/mr/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/mr/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 48aca7e96ad98d080b6209f2c53afd6f0b08f171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmYL@u};G<5Qd9j^2p3^NDQsOb)2CJt}?VGMHPfbC3H8bn;Io{WV@t12(QPp;DFTr z(x&mF@LCuvwPKJ>W>1sH z1lGywb+LRwE7548LmQ+6Kwz@1e97~F>wLW!*seJbx0S0#SpnPSlJI{D5LF6Gc#Cx5Ff!O@jZMN zr<%Z@d^z`=|L5}Jv*mQ=xN_V$&K-A-MxkTshW9QuJ4Yp2z4FY$WCJU%jZl)JWH5Rf zJjQ4hFP|rixwqt%(iUbW7aJJva|5ZO$V(Qm zGMVpL&LQQjq-d^m&2zyd8mhPQ`>R0howb#r7}s^(wVFvIw*1h|REaZIu##zRuyw}< z2fp7USgvu$n@wi%$usHt-bhKyrG@mPa%L<)SX>oM$Ue$;OdD>amvju_X|H*;_&S!6D&vVaRyf+@^&DwVNJkKY>0n_Y>~;nCdg!d5bs==VLzJq+5cVH3$0 zq*-&BP7%Z&HK!`2YX_ diff --git a/src/modules/dummypythonqt/lang/nl/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/nl/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 95b99b007caab2b1dcdb7068c41e72b152d39c88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 914 zcmaKq!EVz)5QY~hAdHYu4+8Tlph2jodI zF-m0=vbkw^`o2b^vd*jJ%nB$R!Oo`WVd_(4op6PP46PLj!l5?MDza=0ov|Bewd3HG z?)hvrmGL{uT43i^_a%<@9OkS$zzdW#EiKUFE?oAZl=UYc9O@oeF}4xB|G+v%4>5Lp zz0dd2SgBP6ot4#%m6vVUZ}0A{Z@>0-G1tcNEt|+be^DfscXb3_XPfWhkt{X5B^*Xj ztA=$R)_7Qluoi{OkE&$erm&88jZiifPMZi?2nUEF&oPB3Cx1rIlT66ek9GF+ak$Y{?H-grEwvkHe6*>HOv(QnW>!X>PwWKTi$!6u^mb%Zkg=sW#XcC8oIo{OGaeJft$eKd>olplDY) z@aBM264_*)HdcLOmnDiz;Xq|^>FMI*GVGSOcUCtyGTSVci8j_%zgqgbEc>Efe(TQYWyZlir7#YH^rX zI$`PVVGvOs<~1jx}^X^P8-S_j>yj_6({eHnJ*;rWs8%1IY_5Yemt~CXEmTaf7u7M#Ir>LXLA^Oo0b3Kq!W z70#0l>ha?v!J80a?-Z#>KL~q=KC}|q`u3?aPDNhy9q~Uga2)!Ps)Qy}dN6ZL2SjMf MdxsvrKfKL<0e|T$+yDRo diff --git a/src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 5ef78795bdea73708f469fd19e431b16bb58dbe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmZ{i!EVz)5QY~hAdEn$2RP8f^p>b>97k#t92F^T)2h(WGcz4b2x@n4d z1Fk#-ZvbZwJONjZoH=u1oV2M_m6bpLp7qSm*!q7hE_^1q?jlP_gxp6yA;tQNJV3r7 zCFBQk5BY;ULH;6-k;NN?)KSZ*4ta|_!uaP+LRL|Kqdr7kx<$xS)RlAHMtzQPjEW`G zg{cHXvM>wh_dEDh%z3-mX@TNn*xzM+o>nljj=9`|+IR3$ z_bX&074bXFS|(TC9tl1^a6BW?h+k8Q+rk1~?%LNCD9Vy)!(-hC%O*C24-96glC!(mKo6PYL zYSo}lgBlI$5Y)n;u~Nn5?K10VWSFukbJ~Qkor`qDjpWaYiUuaAVU9nAMx04(kInL7 z&Mk-1x?yJ`EkkMKTxLVxACJcsSDYmV{In8l>BlT(k{ND&hvn9~XE6-~|NbrbiAX1Eo*c+#bb-JLvzqO2|XBi`NM8&~BhDL%WLp1TBV4 z2Zj)I$->M%|KGq_+2{3gr45RYVSk4WcveHtI_3%sl3UAC4nu8VtB`U6y@?xXweR4W z9@NNYCgRt4YK2_dJraC;;CN1=5uX!@%fbSFZtivs%CKZw@K_JPvWX4h-FwnA`k2R# zb`yHUjTKsj&}(l#Z$It8QKx^<-FxBnd9ID4yEYXGeNv>BMmhwqw@3T@M3gafi#Z-b zqaHMA(4avRf<_pu-LK>Dc9?ZEGECWwIc-Adiy9c$px2cum3VWX9cqzwEou6k+sC9@(%vkPP zhtW1&yEs=?8*)QCD%OcmX$Wfr;m-RGVOq=UWrblG-PT6pbge`B?F~T*tvqr1<6$@9tjBtj)KBB%$Z@pAj0bn*(F^})%2#|^nY?{&yOV?%nxUu UF}ItW8`}RiW~xfW+o_=b0B8;kJOBUy diff --git a/src/modules/dummypythonqt/lang/ro/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ro/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index b07421664053639ea5225582e2223e486bb4d280..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960 zcmZ{iL2uJA6vqP$(1PHw10clV?ZA`>+$2S+x{PdeTL*)UbzQeJZtAw)5<9Y;brs{v zi7VfMj{u*5Z^38a%!%g~b<(t1`T3t``)@y6@AtyoHwW8Y@jrars1r=gMT*9+jgV@f{kE*hjv+3!AKiwN)0*FnhqHBrGm{e&&SXjo1ql@2HweT z#o5SsdV;GKolCPvoQ)0)E1b@dUE#!Gt^q%D<#YwCtv5OFSaw0vv5w)>XQ!p)F-r~E z?vW#=G?yZVR%7FR<4qHen(c$_y$^1i6;c_ps|UPC*2{q=9T|h$+9Pdt%B_cNQo~}X zhEa_~RT9-8s>V_Md5F#3q1up+qC#iXNEO36rM*(w`_fYiuP`6fEDFWzK~8yANoBtJ z!fsYauNaj0UZlfl9z$E^RB$T58yZvSI0#0gQN`H3d7qtGXOPm2=2S5q81(3%8iutf zP%`k{-R<4x#WkZ!=x#`1n85VL1?F$qnF)%Fa57t1>gykeZVRgb diff --git a/src/modules/dummypythonqt/lang/ru/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ru/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 931086b0db46652dca51febbb503f3591ff9fad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 876 zcmZ{i&rj4q6vwNg#!b9%FdjTS4iYxnZKnca*)FWG7!+h#7VblL*sZkF&CJvV!Uawe zNjMo#9{dl`h(BT^o;^+f0TXZj4_-TMDzh#qmmyWLaA7HkVh&4wt3!p_f+7`L zR5aEnn-LAdf*(hvyIHII=;X}=f6uHl8o5wQqzovBp_Wo@=~`B&(m3U+QP=8AE=+h!Xtuh@pN+93`2IQT6pBvamU zea0L+(`BR9m@q5cj~fARx-hmHsMBk@Ad*})Oau+hnOH>91>Wv1r8hhdz0w=vw~6g} z1O^8oEA0V~5SRcPP>$=8=bRiBz2U6vI_x5GV0*h~DUsnkTF5_(=h@j&S6A{z&g>8J zr~B9!$DGV8de~tC9BgneKb|x68-1+br!V!F(>JEy;?}W#m+t8!{Y`(?N09F5<8&w8 m#qUA3l^%fppub`|@9kmFL;X=7rn~7r=ufCTLi7HApW{uCp;HL4&7mfdr+;oHR@KWTLZW1x%KB2G;5z} zLpv#xI$}np9(MoZl1bQO??nh3Ny>GgjH%UL4PquDJ5cfFi?SA`%0Y(LLOYzr9-Kxh zXCbT%jY+iUIHS?XHbr64=NCnu6R?QI3@bVYGqh8!RBEoHLub`G*ga@o|D$VHtZgL? zm)P4l!R8IWFisLNA=e=ovQ%^9zw5MU{aROis?Sr}l!59AIq;y~6=v3@2RgLcQI@iZ zwp1G94a=kqwZFCw)2+WE;TgE#`%r=9Wst?rg)NLw{@>B257nt?!-q8#xiisHk-r61 z4_>aWTjWsXlS`Zrsq&D`#_QCuygblJI=Rdl;AKN!gl2M;%M2#pBQ?xslV+2>NQ6=t l4w}bHr1ek8rb0Fol8!P8&aX?|P}p!Id8l%gPOi$S`wPJ?3-JH| diff --git a/src/modules/dummypythonqt/lang/sl/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/sl/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 763803202404af79ecc72eb7f55aa033b2cf0cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmYL@Ur)j?6vZ+6v`3$PxDT2@w6q<+yg7JMJ8n0>{pU_wKD`j*7MV6sbkSIhqM=awQqWz5Yw@ zIf7XpgyC)EphT* zxy;r)6DSdU#b8>fjgUE)P+wYG8iw(9yKP#{rO6j!*G$z4r@Y`Ru7$zYEg9?+(xKQC zxZ#b4qv+I?Hi_3)(h6x&@>RMLR_rV;3!cj^q)V=iu;F_$K*4FQI<*iQMKV?MTxJY{ zkK7)MGBAY~7i-N6G*EhF7|8O^ny}r4!#AwU8%jtRQg{FYZscHnXX(kdV88#5+Ai{4 J)M|9S+Akr8cU=Gg diff --git a/src/modules/dummypythonqt/lang/sq/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/sq/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index b7daa29f5b951a768760b8a76981ecf17db4ca16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 914 zcmZ{iy>1gh5XTn?AP!LwBxoom5=A1|JD(*?bioKGalquuNldB~tnJC&+IPE`-8GIu zG}N>_MP2}E7rX@xFF->>#hi^237OIT?!PlTvtOF;^K+jW*>&PR(IRdVpNPV~5Vwf0 z#3J#HxIz3R?h(IVKqf3;Awl}JEE*0-Zz{i>~^*wZWG!@`|mF z(eS$J=&n?81j}vd&d(WvJ@K09z=)J@Xp_-9t9;_xYIy~w!|I}fg(`$gD<0eFjnDoz z3LqHtrxAJz@h*Y5hpOAd9)gMm)cQ_dbj+khe72d&zRt#HO8&oVW)!l`5sc4l;%NIB Q)BZF#?HOuON}F`dAF)9N$p8QV diff --git a/src/modules/dummypythonqt/lang/sr/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/sr/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 5c8099cd45786b22eb6659fb293da37e0c29520b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1127 zcmb7D&rcIU6kZiI)_CC{G4b#?NFciHZZ!=q6y--TC_f5R&Q9B*UECkd&eTH01oYs= ziw6@!q9(>apg}7YrCv<9PX7Uqo;`c=+a*FY9Pnko`R2WO-+ON++3%elFErR`;3AL% z&H~SX(3-$G;1kdb>;h+ipFkJz3pfvS9@DfGxDUJw+ygGa?>(Vu)8G+sC-^yd82k=w zfPa8zz+D}h21#Vcu_CM?^p~B27tVPyj1H5>YcxB_^4y8T6OzfQAeRflN}Lw`fX1q> zyF%F&S@ykINw@ucTpM-l!hK|QYyX@s*t|9`c}2^W`5{V#Z9(|tp~rCwWyPrBlAkBR zR)j?lA8FaZU*ZL+PZae99thj_EXod#-Wk4?p@q!c{KU+3Y>rp_K`={chOW0PWkpztM6Fhf%doP& z$d^N5qQD&HvVe<(ghV8ghLJK8B1rVbrY5E`2bVPCMr_pgB=<1fN(IwPzAO_JhuPi$ z70N6ST&C~l#`XS#ys*_G5A=*z@Qb!rvZz0A%l$De5kXiuBb1 z+S{gky-TK%PMg%zL*drwPMap(AcK$&e<+>&b2ON~7H%VjF=!gJy1FMpj?o8=2~DzZ zAf~BTs--qnozzDAiF&QJ)Q+mFZB^IQ8`WyBAqa=s>+Q#?-rfikx5DLXdo2<+;UW#H zCPC3eS_@8C>@BizwvKwOxTZGLXVpZpDD#VIbfd$Oifl&>Fw|bxhI)@m4fP?K@kkZ+ d$Ix)YP1U0IOV#-QI}p@66uyW0s2b64@Ebfd~`@F;POJOLwawxKI@p3{j*3h)2$^2htzV~)Nw@};Yee@xE2YrGr)j)sY@*HcK`BQB2SD84{o05q%R^^&Q+`hSQ z-*sTp8IF2`M{g*L+&I#=shX1OMQX`7=itQyGL&zsWXP>>l0!&Yov@IwI{`?L&3uTw!?-ESJlgGeTSSBHwFCJ`WO+iMcS+1`bgh zgp}4gQxn_N4o9T|TV_>hzDE+{ggbQ6-9Fjl(gY1}1^|6FRyaIyjUho$11V~(S#qkE6G-l~;T6X2llr80NMDdHkiI4* z%Sof9jD~FLbU1lmqn^w2s{67C3Wu=0A-b6RG%{A$fq?>z5g9_S)UZ4#iV?I&wqL4k z3u|T9XG^(E-q5NUc5Zf0;&9hu#X5bwz)7E_0eb9((>^#`dJ^!U?1B*^6T#betgXuf zOe|kb`5tN`OBF$TacO<=c?^5;&hF~gOK%6OQd_=hGMVycgUs+w8G+Z{;yZXKorfY~ozNmp7c)zd`uut|NP zeS-^+X|uZXs%${##XBg92zG~w5?a272Z5s=R);R z^H?QiDpeMNOL>xJ1m@6d=L0QrzEbLf&RA6^L({6y!)doQt6-)D;oQ8(Vg+h6sgl^* zzjabznqn?gN|iGHtO1X(s4zb(7P>^LmUUMx0;=&RC}cLn;`7TURrBAB+kh>jwF1V+ Y6o5is90dMZodYSs@o|Q9i&Q*+00E;2(*OVf diff --git a/src/modules/dummypythonqt/lang/th/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/th/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 502e4d130fa5d8c7edb67958d1ffc560b12b0634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmYL@zfQw25XOsO^2p5KfdK?p#~G^NszWI$s-QF~p}R@l#3->N`%24$@OnH84oK}M z{d9M_@BaLppMCd&P68K!%fM;iHqa^Q2+g|?JI_IxvmdHJn5|)@oY&R}nvEw<)d5(kag{_&tlGXuug(?3&DH^Yr*8 z??+@}4Jw0>f3@L0sy(u{mf8$yQAy_&j^6SqBu8I&YNH&arm$;mNr4{{=qSA(@=~0OVa1tkRd*_R6AL$7( zGr-E+kvU5RQnyRRf5BhCz>I{%b5b=@RqH?c^|enS%ZfTTG}v^Xo$Ghtiz!lD_BjUD1};T zy0P3g@FH$FWF-{Mee{|k=XQ4m@9!AiBSDv65Q)n|13u=$Z3k>vYgBMAZh&T~_Tj@v zQd99BZyLJZqPtva5lbIxODh{o&nvK7sqd_Bz0B2lFII+Dbw{-5a?;T>h<(V_wrHKd z7dD2jGQ)i+6}>X`O4KWZSMt5NheaH@O{NVE6q7n+CRRSI@<=F_LN)0cu6P7bqt=FW^kJ< zWD!$by9Q&mTPhaIo@>#X`Cks|asg_C}^&D9yuox{#N! z2wq`6M_zL&pdr***K8#FA)7Qv_KAhV!O3C7^l$(o`zGYby_KjWvYo~Dh69HzW5JYx z84fUdhU_rBs1dc9lr&U&Utn E5A~cErT_o{ diff --git a/src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 6b860e05cb0ac98cfb2de597e4f68abba9babcca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1279 zcmaJ=OHUI~7`-ZLtT8bx)P;+WL=9DEI#ZG0z*MnjPc7GP&~y{0**Md8SH{ir)0(^n0B1eZ9^7*4_1l;cN%?19@O4 z@DPYk6W9g31A2ikzz*O$uow6N>;bwrG1d=Gg0F67>^gWi;*VPxy9WLW-UmM1#n=IG z7JL|70++#$z>u^K$J*=ZT?ehARkeK8(KakplD7v%S>98oY zyl+t=cTt<<3vR5@&Nz}=ls3$M%}i@%KbdLE95`a&B*q;fwS3@sqT)zDu;@w{xRfpV zf#d{Feo5A6_x|t<1%v;PU%?a6+>K>mgi2@qRZvLaXlA;-jb9xVWm>_dR>>X zvpdIc=mo!;DmWFV>I7V*Bt#;WHjI8V6_!)U#KhRd$l8xIbt94WJ;^;R*QjB8$#2M1 zt%4bYR46%t;L^UFAJqod`r=V@JkUnGfljXrq2m#T9$C zRw(SgLHhO8?)B&(nPl5!(4j-rii|ik*FuAO5Sw%oJuulwkg+MfCZHjk`r`1HyJ64} z{sX#o>$kr_88Z8lFf{)%{4K!>Ml4tjGxqUy{wI=uRN-f1zxMu^XPbSLj3=ZmI+h$v zF!fA*Qm@of`xU6?aUy!E-he-<4{BMhsFi4uq6bJINzt9?u3AFw9!2-j_#R;s9xJH7 zMqRx{^%Yvt(^9U!9zCA66n95=P-+tVWB27Are3TwYN~g%`k2~}ud`|S-;jjsr|fR>X(;F4YL~EjL!Uc$H0Ybo6ym8)0ywa$QJOGKk)#JN(F? hH7KoG!z(=1rnU@J^EcW!9KnAZ_Y_>kK>H(f@(VKbYBc}= diff --git a/src/modules/dummypythonqt/lang/uz/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/uz/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 4e1a2c34a7068a78550cbd77f3592b484199e0e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371 zcmYL@u};G<5Qd9j^2p5KfdK@r;|x{mszWI$s-QF~X?HihriR3hY=@S-2d~Go;DFTr z(x&7$XRq3c%c`e z@>=9TQV=D_%VrH9_-5x^WjUq${l4prP*!f?(9Lv7Gf{|A7_iiNgQZ~*^cbxhdW&Y$ zS$xXLx&az%*eAd};0(k+4#&DbU{6DQ@d!fa z!J1%oJPekAy#p2`tpTYBLev$9?fDpZ`kqJiN(OUQ#}gy8$b1tbsi>++955-V%kYc{ z@jxvI8aUrj6~QMI9u`FtWqq%7AF?i?|8}Q6R-aO=iV78WfD)EHiQ!WRZkt%k%B=%u zMG;HdkPd$I80AAT%Swt2mB};EucgNGsoMgs?DD;{T(;U4YKUfferswy4Js@LnL(zU%A zHm3_%CF;|FhD=%tq|!|7d_R!v4dM@8F{}JQlAWpFo37#)mA9` z?LHj4{fRyUHMi!QTkFxAPkXD+;$HbV{}e@QAAdbx?{r3UdwX~3J*4a{ZASA8(dJ^b zu+d6fei1Fcidysj&H~z9d$+r?6K#L)Xxn|$?z6ZW(!#eJaC#><-hslg6TMv7`|x#t IXBGP7A2L@X(*OVf diff --git a/src/modules/dummypythonqt/lang/zh_TW/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/zh_TW/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index f13ff2d5fd45d65ec6884e3352102ece429c9782..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 924 zcmZva%}*0S6u?(SjjLWb=*7cugXrvbE2(u6BbH(ikOC_naoP^;;_ghdGqqG>Qv8Sp zOpGxSB}SqVgBpW35%BDPVPb@(J>k)K@@>~ZBE0Nx-@Nac$$W2Yc&dQx2aW+2a1eM1 z1hNPm2EG8zz&GFk@C!H!`~i*tjk^>j2D$}w1-J?X{vW%;y5FD=f!(wxoTGsb;ys{G zgHD5nlDa^u0;bXsnw$T9unP9MH}G^IMoVa*m!zqqfh8o7MS)x@1j$h}%01Lsbloya zm1Ul@0f{d1w5B8+J97=Pnw0;d!!|7qNm@{>Jl&xZ+_pgQ$sNNQ3d*wefnz+41Sty> z-MpowJU&J<5_f0uF!hAZnTb*ziJp!NNi>`s9O~}Bqz=*o_ayEUIXjEb7jptz+(c@s z9}m*&c2I*miKHfqMvNFXqS%NbBWfD);}H0aw z88ups)^jsKl4W?-W;qkZ)3)5)vWe=m)Ra^7h=aSh=fY*P zLfsVYMjHy3?U6QBSzWBGRi^yuPwO*x|2>zVmD|eN#Qngr`8d`-&#iua0j~9_ihpma zIzQ=8ECh+Q<(K}GN&ms)jg^UQRsQ?e)wk3B$GO_O*=@nFrBbUr_n$3<+t_(3jDbLy QUVSyc{$^=oWd`2PU#CPf6951J From 8b4ae1d687bf98abd6126720c9cb9166f6cde1b1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 27 Aug 2020 13:38:45 +0200 Subject: [PATCH 38/54] i18n: Don't compile the Python translations as part of fetching TX --- ci/txpull.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/txpull.sh b/ci/txpull.sh index 8c3a824cc..f68814560 100755 --- a/ci/txpull.sh +++ b/ci/txpull.sh @@ -126,7 +126,7 @@ for MODULE_DIR in $(find src/modules -maxdepth 1 -mindepth 1 -type d) ; do # Convert PO files to MO files for POFILE in $(find ${MODULE_DIR} -name "*.po") ; do sed -i'' '/^"Content-Type/s/CHARSET/UTF-8/' $POFILE - msgfmt -o ${POFILE%.po}.mo $POFILE + # msgfmt -o ${POFILE%.po}.mo $POFILE done git add --verbose ${MODULE_DIR}/lang/* git commit "$AUTHOR" --message="i18n: [${MODULE_NAME}] $BOILERPLATE" | true @@ -136,7 +136,7 @@ done for POFILE in $(find lang -name "python.po") ; do sed -i'' '/^"Content-Type/s/CHARSET/UTF-8/' $POFILE - msgfmt -o ${POFILE%.po}.mo $POFILE + # msgfmt -o ${POFILE%.po}.mo $POFILE done git add --verbose lang/python* git commit "$AUTHOR" --message="i18n: [python] $BOILERPLATE" | true From 23bfcb755ebb495a29abe75437dfb07bb6e71fe5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 27 Aug 2020 13:54:08 +0200 Subject: [PATCH 39/54] i18n: pick up the translations CMake module just once --- src/CMakeLists.txt | 7 ++++--- src/calamares/CMakeLists.txt | 1 - src/modules/CMakeLists.txt | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e35a894cd..5ce5349fb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,11 +3,12 @@ # SPDX-FileCopyrightText: 2020 Adriaan de Groot # SPDX-License-Identifier: BSD-2-Clause # -include( CalamaresAddPlugin ) -include( CalamaresAddModuleSubdirectory ) -include( CalamaresAddLibrary ) include( CalamaresAddBrandingSubdirectory ) +include( CalamaresAddLibrary ) +include( CalamaresAddModuleSubdirectory ) +include( CalamaresAddPlugin ) include( CalamaresAddTest ) +include( CalamaresAddTranslations ) # library add_subdirectory( libcalamares ) diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index 6d4eceb8a..604760f3a 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -37,7 +37,6 @@ include_directories( ) # Translations -include( CalamaresAddTranslations ) add_calamares_translations( ${CALAMARES_TRANSLATION_LANGUAGES} ) add_executable( calamares_bin ${calamaresSources} calamares.qrc ${trans_outfile} ) diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index 8836c74ea..c7bd2755a 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -73,7 +73,6 @@ foreach( _category ${_use_categories} ) endif() endforeach() -include( CalamaresAddTranslations ) add_calamares_python_translations( ${CALAMARES_TRANSLATION_LANGUAGES} ) # TODO:3.3: Use FindPython3 From 242d5c6499cd6e76dc0f721c5692fff69d9b017f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 27 Aug 2020 13:59:23 +0200 Subject: [PATCH 40/54] i18n: install Python translations from a sensible place - put the installation code in lang/ rather than among the modules - remove useless indirection through CMake macro --- CMakeModules/CalamaresAddTranslations.cmake | 16 ---------------- lang/CMakeLists.txt | 8 ++++++++ src/modules/CMakeLists.txt | 2 -- 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index 4d2fa265c..f53426e18 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -48,22 +48,6 @@ macro(add_calamares_translations language) ) endmacro() -# Internal macro for Python translations -# -# Translations of the Python modules that don't have their own -# lang/ subdirectories -- these are collected in top-level -# lang/python//LC_MESSAGES/python.mo -macro(add_calamares_python_translations language) - set( CALAMARES_LANGUAGES "" ) - list( APPEND CALAMARES_LANGUAGES ${ARGV} ) - - install_calamares_gettext_translations( python - SOURCE_DIR ${CMAKE_SOURCE_DIR}/lang/python - FILENAME python.mo - RENAME calamares-python.mo - ) -endmacro() - # Installs a directory containing language-code-labeled subdirectories with # gettext data into the appropriate system directory. Allows renaming the # .mo files during install to avoid namespace clashes. diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt index 790d6098a..8658653ab 100644 --- a/lang/CMakeLists.txt +++ b/lang/CMakeLists.txt @@ -5,8 +5,16 @@ # ### +include( CalamaresAddTranslations ) + find_package(Qt5 COMPONENTS Xml) if( Qt5Xml_FOUND ) add_executable(txload txload.cpp) target_link_libraries(txload Qt5::Xml) endif() + +install_calamares_gettext_translations( python + SOURCE_DIR ${CMAKE_SOURCE_DIR}/lang/python + FILENAME python.mo + RENAME calamares-python.mo +) diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index c7bd2755a..8e8c67848 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -73,8 +73,6 @@ foreach( _category ${_use_categories} ) endif() endforeach() -add_calamares_python_translations( ${CALAMARES_TRANSLATION_LANGUAGES} ) - # TODO:3.3: Use FindPython3 if ( BUILD_TESTING AND BUILD_SCHEMA_TESTING AND PYTHONINTERP_FOUND AND PYTHON_EXECUTABLE ) # The tests for each config file are independent of whether the From 3529659629037a6246cb681b38c2ffea859a59a6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 27 Aug 2020 15:21:23 +0200 Subject: [PATCH 41/54] i18n: compile the gettext translations at build time - need gettext to build translations (TODO: find_program) - compile the .mo files from .po as part of the build, writing to the build-directory only --- CMakeModules/CalamaresAddTranslations.cmake | 32 ++++++++++++--------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index f53426e18..ed09d98f9 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -78,31 +78,37 @@ function( install_calamares_gettext_translations ) if( NOT TRANSLATION_RENAME ) set( TRANSLATION_RENAME "${TRANSLATION_FILENAME}" ) endif() + string( REGEX REPLACE ".mo$" ".po" TRANSLATION_SOURCE_FILENAME "${TRANSLATION_FILENAME}" ) message(STATUS "Installing gettext translations for ${TRANSLATION_NAME}") message(STATUS " Installing ${TRANSLATION_FILENAME} from ${TRANSLATION_SOURCE_DIR}") + set( TARGET_NAME calamares-gettext-translations-${NAME} ) + if( NOT TARGET "${TARGET_NAME}" ) + add_custom_target( "${TARGET_NAME}" ALL ) + endif() + set( TRANSLATION_NAME "${NAME}" ) - set( INSTALLED_TRANSLATIONS "" ) foreach( lang ${CALAMARES_TRANSLATION_LANGUAGES} ) # Global - set( lang_mo "${TRANSLATION_SOURCE_DIR}/${lang}/LC_MESSAGES/${TRANSLATION_FILENAME}" ) + string( MAKE_C_IDENTIFIER "${TARGET_NAME}-${lang}" TARGET_SUBNAME ) + + set( lang_po "${TRANSLATION_SOURCE_DIR}/${lang}/LC_MESSAGES/${TRANSLATION_SOURCE_FILENAME}" ) + set( lang_mo "${CMAKE_BINARY_DIR}/lang/${lang}/LC_MESSAGES/${TRANSLATION_RENAME}" ) if( lang STREQUAL "en" ) message( STATUS " Skipping ${TRANSLATION_NAME} translations for en_US" ) - else( EXISTS ${lang_mo} ) - list( APPEND INSTALLED_LANGUAGES "${lang}" ) + else() + add_custom_command( + OUTPUT ${lang_mo} + COMMAND msgfmt + ARGS -o ${lang_mo} ${lang_po} + MAIN_DEPENDENCY ${lang_po} + ) + add_custom_target( "${TARGET_SUBNAME}" DEPENDS ${lang_mo} ) + add_dependencies( "${TARGET_NAME}" "${TARGET_SUBNAME}" ) install( FILES ${lang_mo} DESTINATION ${CMAKE_INSTALL_LOCALEDIR}/${lang}/LC_MESSAGES/ - RENAME ${TRANSLATION_RENAME} ) - # TODO: make translations available in build dir too, for - # translation when running calamares -d from builddir. - set(_build_lc ${CMAKE_BINARY_DIR}/lang/${lang}/LC_MESSAGES/) - file(COPY ${lang_mo} DESTINATION ${_build_lc}) - if (NOT TRANSLATION_FILENAME STREQUAL TRANSLATION_RENAME) - file(RENAME ${_build_lc}${TRANSLATION_FILENAME} ${_build_lc}${TRANSLATION_RENAME}) - endif() - endif() endforeach() endfunction() From 49e925ef472c0ce4e29a073f88b5e008fd8881c2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 27 Aug 2020 15:34:17 +0200 Subject: [PATCH 42/54] i18n: untangle translations in the executable - there's no need for a macro that is going to be used once, especially if there's only one place it can be called. - expand it in place and remove it from the installed CMake module --- CMakeModules/CalamaresAddTranslations.cmake | 36 ----------------- src/calamares/CMakeLists.txt | 44 +++++++++++++++++++-- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index ed09d98f9..3556c7eda 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -12,42 +12,6 @@ include( CMakeParseArguments ) -# Internal macro for adding the C++ / Qt translations to the -# build and install tree. Should be called only once, from -# src/calamares/CMakeLists.txt. -macro(add_calamares_translations language) - list( APPEND CALAMARES_LANGUAGES ${ARGV} ) - - set( calamares_i18n_qrc_content "" ) - - # calamares and qt language files - foreach( lang ${CALAMARES_LANGUAGES} ) - foreach( tlsource "calamares_${lang}" "tz_${lang}" ) - if( EXISTS "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" ) - set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}${tlsource}.qm\n" ) - list( APPEND TS_FILES "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" ) - endif() - endforeach() - endforeach() - - set( trans_file calamares_i18n ) - set( trans_infile ${CMAKE_CURRENT_BINARY_DIR}/${trans_file}.qrc ) - set( trans_outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${trans_file}.cxx ) - - configure_file( ${CMAKE_SOURCE_DIR}/lang/calamares_i18n.qrc.in ${trans_infile} @ONLY ) - - qt5_add_translation(QM_FILES ${TS_FILES}) - - # Run the resource compiler (rcc_options should already be set) - add_custom_command( - OUTPUT ${trans_outfile} - COMMAND "${Qt5Core_RCC_EXECUTABLE}" - ARGS ${rcc_options} --format-version 1 -name ${trans_file} -o ${trans_outfile} ${trans_infile} - MAIN_DEPENDENCY ${trans_infile} - DEPENDS ${QM_FILES} - ) -endmacro() - # Installs a directory containing language-code-labeled subdirectories with # gettext data into the appropriate system directory. Allows renaming the # .mo files during install to avoid namespace clashes. diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index 604760f3a..ff7c90bcc 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -4,8 +4,6 @@ # SPDX-License-Identifier: BSD-2-Clause # -# "calamares_bin" is the main application, not to be confused with -# the target "calamares" which is the non-GUI library part. set( calamaresSources main.cpp CalamaresApplication.cpp @@ -36,9 +34,44 @@ include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ) -# Translations -add_calamares_translations( ${CALAMARES_TRANSLATION_LANGUAGES} ) +### TRANSLATIONS +# +# +set( TS_FILES "" ) +set( calamares_i18n_qrc_content "" ) +# calamares and qt language files +foreach( lang ${CALAMARES_LANGUAGES} ) + foreach( tlsource "calamares_${lang}" "tz_${lang}" ) + if( EXISTS "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" ) + set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}${tlsource}.qm\n" ) + list( APPEND TS_FILES "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" ) + endif() + endforeach() +endforeach() + +set( trans_file calamares_i18n ) +set( trans_infile ${CMAKE_CURRENT_BINARY_DIR}/${trans_file}.qrc ) +set( trans_outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${trans_file}.cxx ) + +configure_file( ${CMAKE_SOURCE_DIR}/lang/calamares_i18n.qrc.in ${trans_infile} @ONLY ) + +qt5_add_translation(QM_FILES ${TS_FILES}) + +# Run the resource compiler (rcc_options should already be set) +add_custom_command( + OUTPUT ${trans_outfile} + COMMAND "${Qt5Core_RCC_EXECUTABLE}" + ARGS ${rcc_options} --format-version 1 -name ${trans_file} -o ${trans_outfile} ${trans_infile} + MAIN_DEPENDENCY ${trans_infile} + DEPENDS ${QM_FILES} +) + +### EXECUTABLE +# +# "calamares_bin" is the main application, not to be confused with +# the target "calamares" which is the non-GUI library part. +# add_executable( calamares_bin ${calamaresSources} calamares.qrc ${trans_outfile} ) target_include_directories( calamares_bin PRIVATE ${CMAKE_SOURCE_DIR} ) set_target_properties(calamares_bin @@ -81,6 +114,9 @@ install( FILES ${CMAKE_SOURCE_DIR}/data/images/squid.svg DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps ) +### TESTS +# +# if( BUILD_TESTING ) # Don't install, these are just for enable_testing add_executable( loadmodule testmain.cpp ) From 85d90383170dd760bcc543df1cd2589e73d61541 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 27 Aug 2020 16:34:31 +0200 Subject: [PATCH 43/54] REUSE: remove special case for .mo files --- .reuse/dep5 | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.reuse/dep5 b/.reuse/dep5 index 6ed0da149..a2b9cf8c3 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -83,17 +83,3 @@ Copyright: 2020 Calamares authors and translators Files: src/modules/dummypythonqt/lang/*/LC_MESSAGES/dummypythonqt.po License: GPL-3.0-or-later Copyright: 2020 Calamares authors and translators - -### FIXME ISSUES -# -# The .mo files are build artifacts -# -# FIXME: these shouldn't be in the source repo at all -# -Files: lang/python/*/LC_MESSAGES/python.mo -License: GPL-3.0-or-later -Copyright: 2020 Calamares authors and translators - -Files: src/modules/dummypythonqt/lang/*/LC_MESSAGES/dummypythonqt.mo -License: GPL-3.0-or-later -Copyright: 2020 Calamares authors and translators From 392b4d33a09cd7bddbcdaaba05e8ac73cd9d1ac3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 27 Aug 2020 16:39:44 +0200 Subject: [PATCH 44/54] i18n: create the lang// directories in the build as-needed --- CMakeModules/CalamaresAddTranslations.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index 3556c7eda..be5ce201d 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -57,10 +57,12 @@ function( install_calamares_gettext_translations ) string( MAKE_C_IDENTIFIER "${TARGET_NAME}-${lang}" TARGET_SUBNAME ) set( lang_po "${TRANSLATION_SOURCE_DIR}/${lang}/LC_MESSAGES/${TRANSLATION_SOURCE_FILENAME}" ) - set( lang_mo "${CMAKE_BINARY_DIR}/lang/${lang}/LC_MESSAGES/${TRANSLATION_RENAME}" ) + set( lang_mo_dir "${CMAKE_BINARY_DIR}/lang/${lang}/LC_MESSAGES" ) + set( lang_mo "${lang_mo_dir}/${TRANSLATION_RENAME}" ) if( lang STREQUAL "en" ) message( STATUS " Skipping ${TRANSLATION_NAME} translations for en_US" ) else() + make_directory( ${lang_mo_dir} ) add_custom_command( OUTPUT ${lang_mo} COMMAND msgfmt From 6b6267e3a417a9442aaaea7a0a45146bd36c45c6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 Aug 2020 00:49:23 +0200 Subject: [PATCH 45/54] i18n: check for gettext rather than just calling msgfmt - *secretly* this is already done in the KF5 i18n modules, so the resizefs was already requiring FindGettext. - we don't actually use the gettext modules' CMake macros, so explain why in the module. --- CMakeModules/CalamaresAddTranslations.cmake | 28 ++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index be5ce201d..56953187c 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -12,6 +12,15 @@ include( CMakeParseArguments ) +# The Gettext module is still old-fashioned, ALLCAPS variables +find_package( Gettext ) +set_package_properties( GETTEXT PROPERTIES + DESCRIPTION "GNU gettext (translation) tools." + URL "https://www.gnu.org/software/gettext/" + PURPOSE "Gettext is used in the translation of Python modules." + TYPE REQUIRED +) + # Installs a directory containing language-code-labeled subdirectories with # gettext data into the appropriate system directory. Allows renaming the # .mo files during install to avoid namespace clashes. @@ -44,8 +53,13 @@ function( install_calamares_gettext_translations ) endif() string( REGEX REPLACE ".mo$" ".po" TRANSLATION_SOURCE_FILENAME "${TRANSLATION_FILENAME}" ) - message(STATUS "Installing gettext translations for ${TRANSLATION_NAME}") - message(STATUS " Installing ${TRANSLATION_FILENAME} from ${TRANSLATION_SOURCE_DIR}") + if ( GETTEXT_FOUND AND GETTEXT_MSGFMT_EXECUTABLE ) + message( STATUS "Installing gettext translations for ${TRANSLATION_NAME}") + message( STATUS " Installing ${TRANSLATION_FILENAME} from ${TRANSLATION_SOURCE_DIR}") + else() + message( WARNING "Gettext translations requested for ${TRANSLATION_NAME}, but gettext was not found." ) + return() + endif() set( TARGET_NAME calamares-gettext-translations-${NAME} ) if( NOT TARGET "${TARGET_NAME}" ) @@ -62,10 +76,18 @@ function( install_calamares_gettext_translations ) if( lang STREQUAL "en" ) message( STATUS " Skipping ${TRANSLATION_NAME} translations for en_US" ) else() + # We **don't** use the gettext macro's here because the source + # structure doesn't match: we are calling this once per language + # for all of Calamares's languages, while the gettext module + # expects it to be called once, for a given language source-dir. + # + # Using any of the gettext macros just gets us multiple rules + # for python.gmo, and it wants to use msgmerge, besides, which + # doesn't fit our Transifex workflow. make_directory( ${lang_mo_dir} ) add_custom_command( OUTPUT ${lang_mo} - COMMAND msgfmt + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} ARGS -o ${lang_mo} ${lang_po} MAIN_DEPENDENCY ${lang_po} ) From e87ce5a43397bf23a1537b2d7bd9e05634824772 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 Aug 2020 13:12:12 +0200 Subject: [PATCH 46/54] Changes: mention Urdu revival --- CHANGES | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGES b/CHANGES index 6fc8b49d6..5476b42a4 100644 --- a/CHANGES +++ b/CHANGES @@ -12,6 +12,7 @@ website will have to do for older versions. This release contains contributions from (alphabetically by first name): - Anke Boersma - Asif Mahmud Shimon + - Manzoor Ahmed Munawar - Sai Kamal This release has two giant source-code changes that have no effect @@ -30,6 +31,7 @@ on functionality, but do touch each and every source file: use in the Calamares network service by testing-it-ourself directly via a synchronous ping. (Thanks to Asif) - New Telugu translation. (Thanks to Sai) + - Urdu translation started. (Thanks to Manzoor) ## Modules ## - *keyboardq* and *localeq* improvements. (Thanks to Anke) From 9afe7a37111a1f8c356817ee83546c85c4803820 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 Aug 2020 14:24:06 +0200 Subject: [PATCH 47/54] [libcalamares] Document JobQueue signals --- src/libcalamares/JobQueue.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/libcalamares/JobQueue.h b/src/libcalamares/JobQueue.h index 23977b78f..4faf9d420 100644 --- a/src/libcalamares/JobQueue.h +++ b/src/libcalamares/JobQueue.h @@ -60,8 +60,26 @@ public: bool isRunning() const { return !m_finished; } signals: + /** @brief Report progress of the whole queue, with a status message + * + * The @p percent is a value between 0.0 and 1.0 (100%) of the + * overall queue progress (not of the current job), while + * @p prettyName is the status message from the job -- often + * just the name of the job, but some jobs include more information. + */ void progress( qreal percent, const QString& prettyName ); + /** @brief Indicate that the queue is empty, after calling start() + * + * Emitted when the queue empties. The queue may also emit + * failed(), if something went wrong, but finished() is always + * the last one. + */ void finished(); + /** @brief A job in the queue failed. + * + * Contains the (already-translated) text from the job describing + * the failure. + */ void failed( const QString& message, const QString& details ); private: From b37a675657874c3bf20ae9f88dba0f68e8bc4172 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 Aug 2020 14:39:32 +0200 Subject: [PATCH 48/54] [libcalamares] Reimplement JobQueue::queueChanged - switch to QStringList as parameter, since consumers (that is, the debug dialog, which is what this is for) are interested just in the **names** of the jobs. - to allow mutex locking in const methods, mark them mutable. --- src/calamares/DebugWindow.cpp | 13 ++++--------- src/libcalamares/JobQueue.cpp | 26 ++++++++++++++++++++++---- src/libcalamares/JobQueue.h | 8 ++++++++ 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/src/calamares/DebugWindow.cpp b/src/calamares/DebugWindow.cpp index 9e2bdc501..f9d6b9614 100644 --- a/src/calamares/DebugWindow.cpp +++ b/src/calamares/DebugWindow.cpp @@ -102,14 +102,8 @@ DebugWindow::DebugWindow() // JobQueue page m_ui->jobQueueText->setReadOnly( true ); - connect( JobQueue::instance(), &JobQueue::queueChanged, this, [this]( const JobList& jobs ) { - QStringList text; - for ( const auto& job : jobs ) - { - text.append( job->prettyName() ); - } - - m_ui->jobQueueText->setText( text.join( '\n' ) ); + connect( JobQueue::instance(), &JobQueue::queueChanged, this, [this]( const QStringList& jobs ) { + m_ui->jobQueueText->setText( jobs.join( '\n' ) ); } ); // Modules page @@ -193,7 +187,8 @@ DebugWindow::DebugWindow() #endif ] { QString moduleName = m_ui->modulesListView->currentIndex().data().toString(); - Module* module = ModuleManager::instance()->moduleInstance( ModuleSystem::InstanceKey::fromString( moduleName ) ); + Module* module + = ModuleManager::instance()->moduleInstance( ModuleSystem::InstanceKey::fromString( moduleName ) ); if ( module ) { m_module = module->configurationMap(); diff --git a/src/libcalamares/JobQueue.cpp b/src/libcalamares/JobQueue.cpp index 64c73434e..f02170075 100644 --- a/src/libcalamares/JobQueue.cpp +++ b/src/libcalamares/JobQueue.cpp @@ -151,6 +151,24 @@ public: QMetaObject::invokeMethod( m_queue, "finish", Qt::QueuedConnection ); } + /** @brief The names of the queued (not running!) jobs. + */ + QStringList queuedJobs() const + { + QMutexLocker qlock( &m_enqueMutex ); + QStringList l; + l.reserve( m_queuedJobs->count() ); + for ( const auto& j : *m_queuedJobs ) + { + l << j.job->prettyName(); + } + return l; + } + +private: + /* This is called **only** from run(), while m_runMutex is + * already locked, so we can use the m_runningJobs member safely. + */ void emitProgress( qreal percentage ) const { percentage = qBound( 0.0, percentage, 1.0 ); @@ -172,10 +190,8 @@ public: m_queue, "progress", Qt::QueuedConnection, Q_ARG( qreal, progress ), Q_ARG( QString, message ) ); } - -private: - QMutex m_runMutex; - QMutex m_enqueMutex; + mutable QMutex m_runMutex; + mutable QMutex m_enqueMutex; std::unique_ptr< WeightedJobList > m_runningJobs = std::make_unique< WeightedJobList >(); std::unique_ptr< WeightedJobList > m_queuedJobs = std::make_unique< WeightedJobList >(); @@ -242,6 +258,7 @@ JobQueue::enqueue( int moduleWeight, const JobList& jobs ) { Q_ASSERT( !m_thread->isRunning() ); m_thread->enqueue( moduleWeight, jobs ); + emit queueChanged( m_thread->queuedJobs() ); } void @@ -249,6 +266,7 @@ JobQueue::finish() { m_finished = true; emit finished(); + emit queueChanged( m_thread->queuedJobs() ); } GlobalStorage* diff --git a/src/libcalamares/JobQueue.h b/src/libcalamares/JobQueue.h index 4faf9d420..b36d89f26 100644 --- a/src/libcalamares/JobQueue.h +++ b/src/libcalamares/JobQueue.h @@ -82,6 +82,14 @@ signals: */ void failed( const QString& message, const QString& details ); + /** @brief Reports the names of jobs in the queue. + * + * When jobs are added via enqueue(), or when the queue otherwise + * changes, the **names** of the jobs are reported. This is + * primarily for debugging purposes. + */ + void queueChanged( const QStringList& jobNames ); + private: void finish(); From 3ae545c8b101c2cb84b6c42455225f1352e3b942 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 Aug 2020 18:18:22 +0200 Subject: [PATCH 49/54] REUSE: qmldir file format doesn't leave space for license information --- src/qml/calamares/slideshow/qmldir | 3 --- src/qml/calamares/slideshow/qmldir.license | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) create mode 100644 src/qml/calamares/slideshow/qmldir.license diff --git a/src/qml/calamares/slideshow/qmldir b/src/qml/calamares/slideshow/qmldir index 8b68d1143..7b964b831 100644 --- a/src/qml/calamares/slideshow/qmldir +++ b/src/qml/calamares/slideshow/qmldir @@ -1,6 +1,3 @@ -/* SPDX-FileCopyrightText: no - SPDX-License-Identifier: CC0-1.0 -*/ module calamares.slideshow Presentation 1.0 Presentation.qml diff --git a/src/qml/calamares/slideshow/qmldir.license b/src/qml/calamares/slideshow/qmldir.license new file mode 100644 index 000000000..d2da9cf5b --- /dev/null +++ b/src/qml/calamares/slideshow/qmldir.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: no +SPDX-License-Identifier: CC0-1.0 From d584a96335bc5564aec9be7a82fec00dc1f7c530 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 Aug 2020 22:19:26 +0200 Subject: [PATCH 50/54] [users] Improve naming of widget --- src/modules/users/UsersPage.cpp | 10 +++++----- src/modules/users/page_usersetup.ui | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 8059b02e1..9141ebb4c 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -87,8 +87,8 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) ui->checkBoxReusePassword->setVisible( m_config->writeRootPassword() ); ui->checkBoxReusePassword->setChecked( m_config->reuseUserPasswordForRoot() ); - ui->checkBoxValidatePassword->setVisible( m_config->permitWeakPasswords() ); - ui->checkBoxValidatePassword->setChecked( m_config->requireStrongPasswords() ); + ui->checkBoxRequireStrongPassword->setVisible( m_config->permitWeakPasswords() ); + ui->checkBoxRequireStrongPassword->setChecked( m_config->requireStrongPasswords() ); // Connect signals and slots ui->textBoxUserPassword->setText( config->userPassword() ); @@ -107,7 +107,7 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) connect( config, &Config::rootPasswordSecondaryChanged, ui->textBoxVerifiedRootPassword, &QLineEdit::setText ); connect( config, &Config::rootPasswordStatusChanged, this, &UsersPage::reportRootPasswordStatus ); - connect( ui->checkBoxValidatePassword, &QCheckBox::stateChanged, this, [this]( int checked ) { + connect( ui->checkBoxRequireStrongPassword, &QCheckBox::stateChanged, this, [this]( int checked ) { m_config->setRequireStrongPasswords( checked != Qt::Unchecked ); } ); @@ -138,10 +138,10 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) if ( m_config->permitWeakPasswords() ) { - connect( ui->checkBoxValidatePassword, &QCheckBox::stateChanged, this, [this]( int checked ) { + connect( ui->checkBoxRequireStrongPassword, &QCheckBox::stateChanged, this, [this]( int checked ) { m_config->setRequireStrongPasswords( checked != Qt::Unchecked ); } ); - connect( config, &Config::requireStrongPasswordsChanged, ui->checkBoxValidatePassword, &QCheckBox::setChecked ); + connect( config, &Config::requireStrongPasswordsChanged, ui->checkBoxRequireStrongPassword, &QCheckBox::setChecked ); } CALAMARES_RETRANSLATE_SLOT( &UsersPage::retranslate ) diff --git a/src/modules/users/page_usersetup.ui b/src/modules/users/page_usersetup.ui index e03526a11..ba1c0bc7d 100644 --- a/src/modules/users/page_usersetup.ui +++ b/src/modules/users/page_usersetup.ui @@ -450,7 +450,7 @@ SPDX-License-Identifier: GPL-3.0-or-later - + When this box is checked, password-strength checking is done and you will not be able to use a weak password. From 15b5ef467e96356fa0db3c44a2f0aa28e6f813d7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 Aug 2020 22:23:36 +0200 Subject: [PATCH 51/54] [users] Hook up strong- and reuse- password checkboxes - setup the visibility and initial checked-state of the reuse-user- password-for-root near where it gets connected; do similar for the require-strong-password - squash the lambda slot into the regular slot: no sense in connecting twice to the same signal with the same receiver. - only connect config->ui once - only connect at all if the setting is visible (e.g. when weak passwords are allowed for the require-strong checkbox, or when root's password will be written for the reuse-password) --- src/modules/users/UsersPage.cpp | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 9141ebb4c..220b0fa07 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -84,12 +84,6 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) { ui->setupUi( this ); - ui->checkBoxReusePassword->setVisible( m_config->writeRootPassword() ); - ui->checkBoxReusePassword->setChecked( m_config->reuseUserPasswordForRoot() ); - - ui->checkBoxRequireStrongPassword->setVisible( m_config->permitWeakPasswords() ); - ui->checkBoxRequireStrongPassword->setChecked( m_config->requireStrongPasswords() ); - // Connect signals and slots ui->textBoxUserPassword->setText( config->userPassword() ); connect( ui->textBoxUserPassword, &QLineEdit::textChanged, config, &Config::setUserPassword ); @@ -107,10 +101,6 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) connect( config, &Config::rootPasswordSecondaryChanged, ui->textBoxVerifiedRootPassword, &QLineEdit::setText ); connect( config, &Config::rootPasswordStatusChanged, this, &UsersPage::reportRootPasswordStatus ); - connect( ui->checkBoxRequireStrongPassword, &QCheckBox::stateChanged, this, [this]( int checked ) { - m_config->setRequireStrongPasswords( checked != Qt::Unchecked ); - } ); - connect( ui->textBoxFullName, &QLineEdit::textEdited, config, &Config::setFullName ); connect( config, &Config::fullNameChanged, this, &UsersPage::onFullNameTextEdited ); @@ -127,21 +117,23 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) } ); connect( config, &Config::autoLoginChanged, ui->checkBoxDoAutoLogin, &QCheckBox::setChecked ); + ui->checkBoxReusePassword->setVisible( m_config->writeRootPassword() ); + ui->checkBoxReusePassword->setChecked( m_config->reuseUserPasswordForRoot() ); if ( m_config->writeRootPassword() ) { - connect( ui->checkBoxReusePassword, &QCheckBox::stateChanged, this, [this]( int checked ) { - m_config->setReuseUserPasswordForRoot( checked != Qt::Unchecked ); - } ); connect( config, &Config::reuseUserPasswordForRootChanged, ui->checkBoxReusePassword, &QCheckBox::setChecked ); connect( ui->checkBoxReusePassword, &QCheckBox::stateChanged, this, &UsersPage::onReuseUserPasswordChanged ); } + ui->checkBoxRequireStrongPassword->setVisible( m_config->permitWeakPasswords() ); + ui->checkBoxRequireStrongPassword->setChecked( m_config->requireStrongPasswords() ); if ( m_config->permitWeakPasswords() ) { connect( ui->checkBoxRequireStrongPassword, &QCheckBox::stateChanged, this, [this]( int checked ) { m_config->setRequireStrongPasswords( checked != Qt::Unchecked ); } ); - connect( config, &Config::requireStrongPasswordsChanged, ui->checkBoxRequireStrongPassword, &QCheckBox::setChecked ); + connect( + config, &Config::requireStrongPasswordsChanged, ui->checkBoxRequireStrongPassword, &QCheckBox::setChecked ); } CALAMARES_RETRANSLATE_SLOT( &UsersPage::retranslate ) @@ -241,6 +233,8 @@ UsersPage::reportUserPasswordStatus( int validity, const QString& message ) void UsersPage::onReuseUserPasswordChanged( const int checked ) { + // Pass the change on to config + m_config->setReuseUserPasswordForRoot( checked != Qt::Unchecked ); /* When "reuse" is checked, hide the fields for explicitly * entering the root password. However, if we're going to * disable the root password anyway, hide them all regardless of From d7dc48d201ed7d50b94606764d270d75c4ddc84a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 Aug 2020 23:07:54 +0200 Subject: [PATCH 52/54] [users] Add now-obvious missed initialization - start the checkbox off in the state from config --- src/modules/users/UsersPage.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 220b0fa07..6ea03f8ef 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -112,6 +112,7 @@ UsersPage::UsersPage( Config* config, QWidget* parent ) connect( config, &Config::loginNameChanged, ui->textBoxLoginName, &QLineEdit::setText ); connect( config, &Config::loginNameStatusChanged, this, &UsersPage::reportLoginNameStatus ); + ui->checkBoxDoAutoLogin->setChecked( m_config->doAutoLogin() ); connect( ui->checkBoxDoAutoLogin, &QCheckBox::stateChanged, this, [this]( int checked ) { m_config->setAutoLogin( checked != Qt::Unchecked ); } ); From ec0b68084f7dabc3e4e9eef4fdae44453562b484 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 Aug 2020 23:20:02 +0200 Subject: [PATCH 53/54] [users] Refactor setting GS - both changing the autologin and changing the user (login) name affect global storage, and both may need to change the autologin username; split it into a free function. - the fullname change was bypassing the login in changing the login name, **but** then it needs a back-workaround to keep the "custom" setting off (when custom is off, auto-fill username and hostname is active). - after loading the config, fill GS already. - when finalizing GS, get the autologin settings again. --- src/modules/users/Config.cpp | 60 +++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index 5ce8c8ed1..d0f573286 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -30,6 +30,30 @@ static const QRegExp HOSTNAME_RX( "^[a-zA-Z0-9][-a-zA-Z0-9_]*$" ); static constexpr const int HOSTNAME_MIN_LENGTH = 2; static constexpr const int HOSTNAME_MAX_LENGTH = 63; +static void +updateGSAutoLogin( bool doAutoLogin, const QString& login ) +{ + Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); + + if ( doAutoLogin && !login.isEmpty() ) + { + gs->insert( "autologinUser", login ); + } + else + { + gs->remove( "autologinUser" ); + } + + if ( login.isEmpty() ) + { + gs->remove( "username" ); + } + else + { + gs->insert( "username", login ); + } +} + const NamedEnumTable< HostNameAction >& hostNameActionNames() { @@ -110,15 +134,7 @@ Config::setLoginName( const QString& login ) { if ( login != m_loginName ) { - Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); - if ( login.isEmpty() ) - { - gs->remove( "username" ); - } - else - { - gs->insert( "username", login ); - } + updateGSAutoLogin( doAutoLogin(), login ); m_customLoginName = !login.isEmpty(); m_loginName = login; @@ -330,9 +346,9 @@ Config::setFullName( const QString& name ) QString login = makeLoginNameSuggestion( cleanParts ); if ( !login.isEmpty() && login != m_loginName ) { - m_loginName = login; - emit loginNameChanged( login ); - emit loginNameStatusChanged( loginNameStatus() ); + setLoginName( login ); + // It's **still** not custom, though setLoginName() sets that + m_customLoginName = false; } } if ( !m_customHostName ) @@ -340,9 +356,9 @@ Config::setFullName( const QString& name ) QString hostname = makeHostnameSuggestion( cleanParts ); if ( !hostname.isEmpty() && hostname != m_hostName ) { - m_hostName = hostname; - emit hostNameChanged( hostname ); - emit hostNameStatusChanged( hostNameStatus() ); + setHostName( hostname ); + // Still not custom + m_customHostName = false; } } } @@ -353,15 +369,7 @@ Config::setAutoLogin( bool b ) { if ( b != m_doAutoLogin ) { - Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); - if ( b ) - { - gs->insert( "autologinUser", loginName() ); - } - else - { - gs->remove( "autologinUser" ); - } + updateGSAutoLogin( b, loginName() ); m_doAutoLogin = b; emit autoLoginChanged( b ); } @@ -700,14 +708,16 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) } std::sort( m_passwordChecks.begin(), m_passwordChecks.end() ); + updateGSAutoLogin( doAutoLogin(), loginName() ); checkReady(); } void Config::finalizeGlobalStorage() const { - Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); + updateGSAutoLogin( doAutoLogin(), loginName() ); + Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); if ( writeRootPassword() ) { gs->insert( "reuseRootPassword", reuseUserPasswordForRoot() ); From df0180fc12fd2fae6a6568ecf9795b04224af845 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 1 Sep 2020 17:09:07 +0200 Subject: [PATCH 54/54] i18n: Tajik timezone translations FIXES #1504 --- lang/tz_tg.ts | 2620 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2620 insertions(+) create mode 100644 lang/tz_tg.ts diff --git a/lang/tz_tg.ts b/lang/tz_tg.ts new file mode 100644 index 000000000..77e075619 --- /dev/null +++ b/lang/tz_tg.ts @@ -0,0 +1,2620 @@ + + + + + + QObject + + + Africa + tz_regions + Африка + + + + America + tz_regions + Америка + + + + Antarctica + tz_regions + Антарктида + + + + Arctic + tz_regions + Арктика + + + + Asia + tz_regions + Осиё + + + + Atlantic + tz_regions + Уқёнуси Атлантикӣ + + + + Australia + tz_regions + Австралия + + + + Europe + tz_regions + Аврупо + + + + Indian + tz_regions + Ҳиндӣ + + + + Pacific + tz_regions + Уқёнуси Ором + + + + Abidjan + tz_names + Абиҷон + + + + Accra + tz_names + Аккра + + + + Adak + tz_names + Адак + + + + Addis Ababa + tz_names + Аддис-Абаба + + + + Adelaide + tz_names + Аделаида + + + + Aden + tz_names + Аден + + + + Algiers + tz_names + Алҷазоир + + + + Almaty + tz_names + Алмаато + + + + Amman + tz_names + Уммон + + + + Amsterdam + tz_names + Амстердам + + + + Anadyr + tz_names + Анадир + + + + Anchorage + tz_names + Анкориҷ + + + + Andorra + tz_names + Андорра + + + + Anguilla + tz_names + Ангвелла + + + + Antananarivo + tz_names + Антананариву + + + + Antigua + tz_names + Антигуа + + + + Apia + tz_names + Апиа + + + + Aqtau + tz_names + Актау + + + + Aqtobe + tz_names + Актобе + + + + Araguaina + tz_names + Арагуаина + + + + Argentina/Buenos Aires + tz_names + Аргентина/Буэнос-Айрес + + + + Argentina/Catamarca + tz_names + Аргентина/Катамарка + + + + Argentina/Cordoba + tz_names + Аргентина/Кордоба + + + + Argentina/Jujuy + tz_names + Аргентина/Ҷуҷуй + + + + Argentina/La Rioja + tz_names + Аргентина/Ла Риоха + + + + Argentina/Mendoza + tz_names + Аргентина/Мендоза + + + + Argentina/Rio Gallegos + tz_names + Аргентина/Рио Галегос + + + + Argentina/Salta + tz_names + Аргентина/Салта + + + + Argentina/San Juan + tz_names + Аргентина/Сан Ҷуан + + + + Argentina/San Luis + tz_names + Аргентина/Сан Луис + + + + Argentina/Tucuman + tz_names + Аргентина/Тукуман + + + + Argentina/Ushuaia + tz_names + Аргентина/Ушуайя + + + + Aruba + tz_names + Аруба + + + + Ashgabat + tz_names + Ашқобод + + + + Asmara + tz_names + Асмэра + + + + Astrakhan + tz_names + Астрахан + + + + Asuncion + tz_names + Асунсон + + + + Athens + tz_names + Афина + + + + Atikokan + tz_names + Атикокак + + + + Atyrau + tz_names + Атирау + + + + Auckland + tz_names + Окленд + + + + Azores + tz_names + Азор + + + + Baghdad + tz_names + Бағдод + + + + Bahia + tz_names + Баҳя + + + + Bahia Banderas + tz_names + Баҳя Бандерас + + + + Bahrain + tz_names + Баҳрайн + + + + Baku + tz_names + Боку + + + + Bamako + tz_names + Бомако + + + + Bangkok + tz_names + Бангкок + + + + Bangui + tz_names + Банги + + + + Banjul + tz_names + Банжул + + + + Barbados + tz_names + Барбадос + + + + Barnaul + tz_names + Барнаул + + + + Beirut + tz_names + Бейрут + + + + Belem + tz_names + Белем + + + + Belgrade + tz_names + Белград + + + + Belize + tz_names + Белиз + + + + Berlin + tz_names + Берлин + + + + Bermuda + tz_names + Бермуда + + + + Bishkek + tz_names + Бишкек + + + + Bissau + tz_names + Бисау + + + + Blanc-Sablon + tz_names + Бланк-Саблон + + + + Blantyre + tz_names + Блантайр + + + + Boa Vista + tz_names + Боа-Виста + + + + Bogota + tz_names + Богота + + + + Boise + tz_names + Бойсе + + + + Bougainville + tz_names + Бугенвил + + + + Bratislava + tz_names + Братислава + + + + Brazzaville + tz_names + Браззавил + + + + Brisbane + tz_names + Брисбен + + + + Broken Hill + tz_names + Брокен-Хилл + + + + Brunei + tz_names + Бруней + + + + Brussels + tz_names + Брюссел + + + + Bucharest + tz_names + Бухарест + + + + Budapest + tz_names + Будапешт + + + + Bujumbura + tz_names + Буҷумбура + + + + Busingen + tz_names + Бусинген + + + + Cairo + tz_names + Қоҳира + + + + Cambridge Bay + tz_names + Кеймбриҷ-Бей + + + + Campo Grande + tz_names + Кампо-Граде + + + + Canary + tz_names + Канарӣ + + + + Cancun + tz_names + Канкун + + + + Cape Verde + tz_names + Кабо-Верде + + + + Caracas + tz_names + Каракас + + + + Casablanca + tz_names + Касабланка + + + + Casey + tz_names + Кейси + + + + Cayenne + tz_names + Кайенна + + + + Cayman + tz_names + Кайман + + + + Ceuta + tz_names + Сеута + + + + Chagos + tz_names + Чагос + + + + Chatham + tz_names + Чатам + + + + Chicago + tz_names + Чикаго + + + + Chihuahua + tz_names + Чихуахуа + + + + Chisinau + tz_names + Кишинев + + + + Chita + tz_names + Чита + + + + Choibalsan + tz_names + Чойбалсан + + + + Christmas + tz_names + Крисмас + + + + Chuuk + tz_names + Чуук + + + + Cocos + tz_names + Кокос + + + + Colombo + tz_names + Коломбо + + + + Comoro + tz_names + Коморо + + + + Conakry + tz_names + Конакри + + + + Copenhagen + tz_names + Копенгаген + + + + Costa Rica + tz_names + Коста-Рика + + + + Creston + tz_names + Крестон + + + + Cuiaba + tz_names + Куяба + + + + Curacao + tz_names + Кюрасао + + + + Currie + tz_names + Керри + + + + Dakar + tz_names + Дакар + + + + Damascus + tz_names + Димишқ + + + + Danmarkshavn + tz_names + Данмарксҳавн + + + + Dar es Salaam + tz_names + Даруссалам + + + + Darwin + tz_names + Дарвин + + + + Davis + tz_names + Дейвис + + + + Dawson + tz_names + Доусон + + + + Dawson Creek + tz_names + Доусон-Крик + + + + Denver + tz_names + Денвер + + + + Detroit + tz_names + Детройт + + + + Dhaka + tz_names + Дакка + + + + Dili + tz_names + Дили + + + + Djibouti + tz_names + Ҷибути + + + + Dominica + tz_names + Доминика + + + + Douala + tz_names + Доуала + + + + Dubai + tz_names + Дубай + + + + Dublin + tz_names + Дублин + + + + DumontDUrville + tz_names + Дюмон д’Юрвил + + + + Dushanbe + tz_names + Душанбе + + + + Easter + tz_names + Писҳо + + + + Edmonton + tz_names + Эдмонтон + + + + Efate + tz_names + Эфате + + + + Eirunepe + tz_names + Эйрунепе + + + + El Aaiun + tz_names + Эл-Аюн + + + + El Salvador + tz_names + Ал-Салвадор + + + + Enderbury + tz_names + Эндербери + + + + Eucla + tz_names + Юкла + + + + Fakaofo + tz_names + Факаофо + + + + Famagusta + tz_names + Фамагуста + + + + Faroe + tz_names + Фарер + + + + Fiji + tz_names + Фиҷи + + + + Fort Nelson + tz_names + Форт Нелсон + + + + Fortaleza + tz_names + Форталеза + + + + Freetown + tz_names + Фритаун + + + + Funafuti + tz_names + Фунафути + + + + Gaborone + tz_names + Габороне + + + + Galapagos + tz_names + Галапагос + + + + Gambier + tz_names + Гамбир + + + + Gaza + tz_names + Газа + + + + Gibraltar + tz_names + Гибралтар + + + + Glace Bay + tz_names + Глас Бэй + + + + Godthab + tz_names + Готхоб + + + + Goose Bay + tz_names + Гус-Бэй + + + + Grand Turk + tz_names + Гранд Турк + + + + Grenada + tz_names + Гренада + + + + Guadalcanal + tz_names + Гуадалканал + + + + Guadeloupe + tz_names + Гваделупа + + + + Guam + tz_names + Гуам + + + + Guatemala + tz_names + Гватемала + + + + Guayaquil + tz_names + Гуаякил + + + + Guernsey + tz_names + Гернси + + + + Guyana + tz_names + Гайана + + + + Halifax + tz_names + Галифакс + + + + Harare + tz_names + Хараре + + + + Havana + tz_names + Гавана + + + + Hebron + tz_names + Ҳеврон + + + + Helsinki + tz_names + Ҳелсинки + + + + Hermosillo + tz_names + Ҳермосилло + + + + Ho Chi Minh + tz_names + Ҳошимин + + + + Hobart + tz_names + Ҳобарт + + + + Hong Kong + tz_names + Ҳонгконг + + + + Honolulu + tz_names + Гонолулу + + + + Hovd + tz_names + Ҳовд + + + + Indiana/Indianapolis + tz_names + Индиана/Индианаполис + + + + Indiana/Knox + tz_names + Индиана/Кнокс + + + + Indiana/Marengo + tz_names + Индиана/Маренго + + + + Indiana/Petersburg + tz_names + Индиана/Питерсберг + + + + Indiana/Tell City + tz_names + Индиана/Телл Сити + + + + Indiana/Vevay + tz_names + Индиана/Вивэй + + + + Indiana/Vincennes + tz_names + Индиана/Винсенс + + + + Indiana/Winamac + tz_names + Индиана/Винамак + + + + Inuvik + tz_names + Инувик + + + + Iqaluit + tz_names + Икалуит + + + + Irkutsk + tz_names + Иркутск + + + + Isle of Man + tz_names + Ҷазираи Мэн + + + + Istanbul + tz_names + Стамбул + + + + Jakarta + tz_names + Ҷакарта + + + + Jamaica + tz_names + Ҷомайка + + + + Jayapura + tz_names + Ҷайапура + + + + Jersey + tz_names + Ҷерси + + + + Jerusalem + tz_names + Байтулмуқаддас + + + + Johannesburg + tz_names + Йоханнесбург + + + + Juba + tz_names + Ҷуба + + + + Juneau + tz_names + Ҷуно + + + + Kabul + tz_names + Кобул + + + + Kaliningrad + tz_names + Калининград + + + + Kamchatka + tz_names + Камчатка + + + + Kampala + tz_names + Кампала + + + + Karachi + tz_names + Қарочӣ + + + + Kathmandu + tz_names + Катманду + + + + Kentucky/Louisville + tz_names + Кентуки/Луисвилл + + + + Kentucky/Monticello + tz_names + Кентуки/Монтиселло + + + + Kerguelen + tz_names + Кергелен + + + + Khandyga + tz_names + Хандига + + + + Khartoum + tz_names + Хартум + + + + Kiev + tz_names + Киев + + + + Kigali + tz_names + Кигали + + + + Kinshasa + tz_names + Киншаса + + + + Kiritimati + tz_names + Киритимати + + + + Kirov + tz_names + Киров + + + + Kolkata + tz_names + Калкута + + + + Kosrae + tz_names + Косра + + + + Kralendijk + tz_names + Кралендейк + + + + Krasnoyarsk + tz_names + Красноярск + + + + Kuala Lumpur + tz_names + Куала-Лумпур + + + + Kuching + tz_names + Кучинг + + + + Kuwait + tz_names + Қувайт + + + + Kwajalein + tz_names + Кваҷалейн + + + + La Paz + tz_names + Ла-Пас + + + + Lagos + tz_names + Лагос + + + + Libreville + tz_names + Либревил + + + + Lima + tz_names + Лима + + + + Lindeman + tz_names + Линдерман + + + + Lisbon + tz_names + Лиссабон + + + + Ljubljana + tz_names + Любляна + + + + Lome + tz_names + Ломе + + + + London + tz_names + Лондон + + + + Longyearbyen + tz_names + Лонгйир + + + + Lord Howe + tz_names + Лорд-Хау + + + + Los Angeles + tz_names + Лос-Анҷелес + + + + Lower Princes + tz_names + Лоуэр-Принс + + + + Luanda + tz_names + Луанда + + + + Lubumbashi + tz_names + Лубумбаши + + + + Lusaka + tz_names + Лусака + + + + Luxembourg + tz_names + Люксембург + + + + Macau + tz_names + Макау + + + + Maceio + tz_names + Масейо + + + + Macquarie + tz_names + Макгвайр + + + + Madeira + tz_names + Мадейра + + + + Madrid + tz_names + Мадрид + + + + Magadan + tz_names + Магадан + + + + Mahe + tz_names + Маэ + + + + Majuro + tz_names + Маҷуро + + + + Makassar + tz_names + Макассар + + + + Malabo + tz_names + Малабо + + + + Maldives + tz_names + Малдив + + + + Malta + tz_names + Малта + + + + Managua + tz_names + Манагуа + + + + Manaus + tz_names + Манаус + + + + Manila + tz_names + Манила + + + + Maputo + tz_names + Мапуту + + + + Mariehamn + tz_names + Мариехамн + + + + Marigot + tz_names + Маригот + + + + Marquesas + tz_names + Маркизас + + + + Martinique + tz_names + Мартиника + + + + Maseru + tz_names + Масеру + + + + Matamoros + tz_names + Матаморос + + + + Mauritius + tz_names + Маврикий + + + + Mawson + tz_names + Маусон + + + + Mayotte + tz_names + Майотта + + + + Mazatlan + tz_names + Масатлан + + + + Mbabane + tz_names + Мбабане + + + + McMurdo + tz_names + Мак-Мердо + + + + Melbourne + tz_names + Мелбурн + + + + Menominee + tz_names + Меномини + + + + Merida + tz_names + Мерида + + + + Metlakatla + tz_names + Метлакатла + + + + Mexico City + tz_names + Мехико + + + + Midway + tz_names + Мидуэй + + + + Minsk + tz_names + Минск + + + + Miquelon + tz_names + Микелон + + + + Mogadishu + tz_names + Могадишо + + + + Monaco + tz_names + Монако + + + + Moncton + tz_names + Монктон + + + + Monrovia + tz_names + Монровия + + + + Monterrey + tz_names + Монтеррей + + + + Montevideo + tz_names + Монтевидео + + + + Montserrat + tz_names + Монтсеррат + + + + Moscow + tz_names + Москав + + + + Muscat + tz_names + Масқат + + + + Nairobi + tz_names + Найроби + + + + Nassau + tz_names + Нассау + + + + Nauru + tz_names + Новурӯ + + + + Ndjamena + tz_names + Нҷамена + + + + New York + tz_names + Штати Ню-Йорк + + + + Niamey + tz_names + Ниамей + + + + Nicosia + tz_names + Никосия + + + + Nipigon + tz_names + Нипигон + + + + Niue + tz_names + Нива + + + + Nome + tz_names + Ном + + + + Norfolk + tz_names + Норфолк + + + + Noronha + tz_names + Нороня + + + + North Dakota/Beulah + tz_names + Дакотаи Шимолӣ/Бойла + + + + North Dakota/Center + tz_names + Дакотаи Шимолӣ/Марказ + + + + North Dakota/New Salem + tz_names + Дакотаи Шимолӣ/Ню Сейлем + + + + Nouakchott + tz_names + Нуакшот + + + + Noumea + tz_names + Нумеа + + + + Novokuznetsk + tz_names + Новокузнетск + + + + Novosibirsk + tz_names + Новосибирск + + + + Ojinaga + tz_names + Оҷинага + + + + Omsk + tz_names + Омск + + + + Oral + tz_names + Орал + + + + Oslo + tz_names + Осло + + + + Ouagadougou + tz_names + Уагадугу + + + + Pago Pago + tz_names + Паго-Паго + + + + Palau + tz_names + Палаув + + + + Palmer + tz_names + Палмер + + + + Panama + tz_names + Панама + + + + Pangnirtung + tz_names + Пангниртунг + + + + Paramaribo + tz_names + Парамарибо + + + + Paris + tz_names + Париж + + + + Perth + tz_names + Перт + + + + Phnom Penh + tz_names + Пномпен + + + + Phoenix + tz_names + Феникс + + + + Pitcairn + tz_names + Питкоирн + + + + Podgorica + tz_names + Подгоритса + + + + Pohnpei + tz_names + Понпеи + + + + Pontianak + tz_names + Понтианак + + + + Port Moresby + tz_names + Порт-Морсби + + + + Port of Spain + tz_names + Порт-оф-Спейн + + + + Port-au-Prince + tz_names + Порт-о-Пренс + + + + Porto Velho + tz_names + Порту-Велю + + + + Porto-Novo + tz_names + Порто-Ново + + + + Prague + tz_names + Прага + + + + Puerto Rico + tz_names + Пуэрто-Рико + + + + Punta Arenas + tz_names + Пунта Аренас + + + + Pyongyang + tz_names + Пхенян + + + + Qatar + tz_names + Қатар + + + + Qostanay + tz_names + Костанай + + + + Qyzylorda + tz_names + Қизилорда + + + + Rainy River + tz_names + Рейни Ривер + + + + Rankin Inlet + tz_names + Ранкин-Инлет + + + + Rarotonga + tz_names + Раротонга + + + + Recife + tz_names + Ресиф + + + + Regina + tz_names + Регина + + + + Resolute + tz_names + Резолют + + + + Reunion + tz_names + Реюнон + + + + Reykjavik + tz_names + Рейкявик + + + + Riga + tz_names + Рига + + + + Rio Branco + tz_names + Риу-Бранку + + + + Riyadh + tz_names + Арриёз + + + + Rome + tz_names + Рим + + + + Rothera + tz_names + Ротера + + + + Saipan + tz_names + Сайпан + + + + Sakhalin + tz_names + Сахалин + + + + Samara + tz_names + Самара + + + + Samarkand + tz_names + Самарқанд + + + + San Marino + tz_names + Сан-Марино + + + + Santarem + tz_names + Сантарем + + + + Santiago + tz_names + Сантяго + + + + Santo Domingo + tz_names + Санто-Доминго + + + + Sao Paulo + tz_names + Сан-Паулу + + + + Sao Tome + tz_names + Сан-Томе + + + + Sarajevo + tz_names + Сараево + + + + Saratov + tz_names + Саратов + + + + Scoresbysund + tz_names + Скорсбисунд + + + + Seoul + tz_names + Сеул + + + + Shanghai + tz_names + Шанхай + + + + Simferopol + tz_names + Симферопол + + + + Singapore + tz_names + Сингапур + + + + Sitka + tz_names + Ситка + + + + Skopje + tz_names + Скопе + + + + Sofia + tz_names + София + + + + South Georgia + tz_names + Ҷорҷияи Ҷанубӣ + + + + Srednekolymsk + tz_names + Среднеколимск + + + + St Barthelemy + tz_names + Сент-Бартелми + + + + St Helena + tz_names + Сент-Ҳелена + + + + St Johns + tz_names + Сент-Ҷонс + + + + St Kitts + tz_names + Сент-Китс + + + + St Lucia + tz_names + Сент-Люсиа + + + + St Thomas + tz_names + Сент-Томас + + + + St Vincent + tz_names + Сент-Винсент + + + + Stanley + tz_names + Стэнли + + + + Stockholm + tz_names + Стокголм + + + + Swift Current + tz_names + Свифт Каррент + + + + Sydney + tz_names + Сидней + + + + Syowa + tz_names + Сева + + + + Tahiti + tz_names + Таити + + + + Taipei + tz_names + Тайбэй + + + + Tallinn + tz_names + Таллин + + + + Tarawa + tz_names + Тарава + + + + Tashkent + tz_names + Тошкент + + + + Tbilisi + tz_names + Тбилиси + + + + Tegucigalpa + tz_names + Тегусигалпа + + + + Tehran + tz_names + Теҳрон + + + + Thimphu + tz_names + Тхимпху + + + + Thule + tz_names + Фула + + + + Thunder Bay + tz_names + Тандер-Бей + + + + Tijuana + tz_names + Тихуана + + + + Tirane + tz_names + Тирана + + + + Tokyo + tz_names + Токио + + + + Tomsk + tz_names + Томск + + + + Tongatapu + tz_names + Тонгатапу + + + + Toronto + tz_names + Торонто + + + + Tortola + tz_names + Тортола + + + + Tripoli + tz_names + Триполи + + + + Troll + tz_names + Тролл + + + + Tunis + tz_names + Тунис + + + + Ulaanbaatar + tz_names + Улон-Ботур + + + + Ulyanovsk + tz_names + Уляновск + + + + Urumqi + tz_names + Урумчи + + + + Ust-Nera + tz_names + Уст-Нера + + + + Uzhgorod + tz_names + Ужгород + + + + Vaduz + tz_names + Вадуз + + + + Vancouver + tz_names + Ванкувер + + + + Vatican + tz_names + Ватикан + + + + Vienna + tz_names + Вена + + + + Vientiane + tz_names + Вентян + + + + Vilnius + tz_names + Вилнюс + + + + Vladivostok + tz_names + Владивосток + + + + Volgograd + tz_names + Волгоград + + + + Vostok + tz_names + Восток + + + + Wake + tz_names + Вэйк + + + + Wallis + tz_names + Уоллис + + + + Warsaw + tz_names + Варшава + + + + Whitehorse + tz_names + Уайтхорс + + + + Windhoek + tz_names + Виндхук + + + + Winnipeg + tz_names + Виннипег + + + + Yakutat + tz_names + Якутат + + + + Yakutsk + tz_names + Якутск + + + + Yangon + tz_names + Янгон + + + + Yekaterinburg + tz_names + Екатеринбург + + + + Yellowknife + tz_names + Йеллоунайф + + + + Yerevan + tz_names + Ереван + + + + Zagreb + tz_names + Загреб + + + + Zaporozhye + tz_names + Запорожие + + + + Zurich + tz_names + Тсурих + + +

    G48nTn8QT?2CaRIV{3Czsgt22f&^9gxf2t~|!>iN; z%b)V?GBYqO@DJKNe}aI%IL07xA?=si^+af zj!Ojfx7mCS$Y+uA&jWzq@U8HyeU8W*@&rmlAQqJbC&+**&3ZfE6JH;*FtM$3_ev1h zznao)l-s>)(CAyU`y}qgy6r)^gTU>(Pk!P&=RbdQTjb2qDmaauV_QD~7c{Z43%NnL zZyI`!R;f0KX_3GR^e^>?zW}Nn;6Q=b{wEjVQ}%soTJ_iT1VD+0eC&;yo9=FZu0u(q z5goOER@H~Yb1$$O0g=GPz`kFcF5e1M)PX(18#@ox`pq`cl{DCxgbWD~`BOgN`w1RfH6J4mM+d}*3}z^xf&HkS`~T(#8f_j3?zn@>S~ zkO$fZ_%2<$^%^k&tcYJKIbTz07PYjz(k!a^-?rmo-Tay){)xMTiT-~be}a3lO8hef zIG!+<(l#x+UDTIZGsC;|={*vfkKuI_r%NCD)6%gGmugj<&?GUC`@F3-9K3B+TiKD{ z8_(lXtrXJ^n=^Zx&-G1>F&;Q_Ewp9iR)My7sb2T6?yNt4nk?>|6^3`OVD*Y@XYzPE z&S+$;0YB)K-JmJv8aZYh-!stY>_7XY$giDWH?s*pIB6{>_(CgP0Twjd62+@|+ML-~ zhVCcZEL?59o)tD0@6v_O*ANEK$0Mz%b4~T$dqWNS&rlXv3OTClS2vV$TDt-T53?^p j3o^Y34>@wc%CgYnRP=uV#}2U^ diff --git a/src/modules/locale/images/orig/timezone_-3.0.png b/src/modules/locale/images/orig/timezone_-3.0.png deleted file mode 100644 index c22dbb64aced33e357cfe9adc59dcae28fd957c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13615 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 a7uLQ&n{j0qtN;LnBqO0HUi$K%_x}rS>e8VA diff --git a/src/modules/locale/images/orig/timezone_-3.5.png b/src/modules/locale/images/orig/timezone_-3.5.png deleted file mode 100644 index c1df00b9b7590ec54f2afe0e5fdb611b249e9031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV4TUp3>0zuvh*B~VlH;_4B_D5xc$)o0g%gC z;1OBOz`(W$gc)7$8Uh&%k|nMYCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+>Bu zkDAIM~AU|C&~d(MU4ow92N&@RQ2AirP+CMISURyIyKMOF3W^z5!F)8{W+zIprZ^YgTe~DWM4fk5s11 diff --git a/src/modules/locale/images/orig/timezone_-4.0.png b/src/modules/locale/images/orig/timezone_-4.0.png deleted file mode 100644 index 4b5a4318cb69764a46726a4988011e4f63aa34ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15084 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 QEG-#4UHx3vIVCg!0As{}FaQ7m diff --git a/src/modules/locale/images/orig/timezone_-5.0.png b/src/modules/locale/images/orig/timezone_-5.0.png deleted file mode 100644 index 06c15e69783d9389a55d0cf7ecf0e87a6a89d03e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19166 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 diff --git a/src/modules/locale/images/orig/timezone_-6.0.png b/src/modules/locale/images/orig/timezone_-6.0.png deleted file mode 100644 index 8505fb1f7a5691f9910a10e90543aa2fdc4a04d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13764 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 diff --git a/src/modules/locale/images/orig/timezone_-7.0.png b/src/modules/locale/images/orig/timezone_-7.0.png deleted file mode 100644 index fec235da455e7da6027000eb00293fa426720584..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11977 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 diff --git a/src/modules/locale/images/orig/timezone_-9.0.png b/src/modules/locale/images/orig/timezone_-9.0.png deleted file mode 100644 index 04cb3cb8b1ce5d39be740b903c3c7967d5b3f9ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7908 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 diff --git a/src/modules/locale/images/orig/timezone_-9.5.png b/src/modules/locale/images/orig/timezone_-9.5.png deleted file mode 100644 index b1c788dc87370c1fd43fb52e2ac82dabda7cc12c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV4TUq3>0Z*@i-5pn2Vh}LpV4%Za?&Y0OWEO zctjR6Ft9BGVMf=xhCl{`WQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E zS^+*GuK)l42QnEPK**s%A+FCdWwu-42Dh@!?q!=jTaN{HoDA+f72I~)z39k$KtX`P(dWTJsRM4=y)3RZKfZ_R zpZ%--;L;h78@jAOwR8dv{$IJ43q)>_ohA_ZMg5MGM3Z7$LWiP65=R@5DKY7u;b8$L dlHBrRq4?4L-uVWC_CG=TJYD@<);T3K0RT)QUWxz! diff --git a/src/modules/locale/images/orig/timezone_0.0.png b/src/modules/locale/images/orig/timezone_0.0.png deleted file mode 100644 index e59b773caf83fa84b7e1c7d8c5a57ddd3414186b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11074 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 diff --git a/src/modules/locale/images/orig/timezone_1.0.png b/src/modules/locale/images/orig/timezone_1.0.png deleted file mode 100644 index 2053b7e2e2fd82c7d3bafe26f4508b486e9682e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15458 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 nl$*HlZI!T3W$-d2m?6NP} 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 F{V&1%yDtC$ diff --git a/src/modules/locale/images/orig/timezone_10.5.png b/src/modules/locale/images/orig/timezone_10.5.png deleted file mode 100644 index 6ec7f9fa9428e433389de14ae48a19b05a1116a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV4TUq3>0Z*@i-5pn2Vh}LpV4%Za?&Y0OWEO zctjR6Ft9BGVMf=xhCl{`WQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E zx&b~RuK)l42QnEN7#LI-7%UlNEM*E;yBBYCuiW8XyWhWhk8ktgfQEg(9Vdf(&V?qp zKc5Cv%v%!V7tFxO#Lmg-pHVe`!R0Hx$J3VrB`$ipIEF|_zCGwD+Mpo7df+|lnM5Wf zfySDYg_C4+9^O8D2589ugFh?Y3UckdFUs{Yz0GNzIzHE2`O0`@C9_S(`G*xCWuC5n JF6*2Ung9#4SS0`e diff --git a/src/modules/locale/images/orig/timezone_11.0.png b/src/modules/locale/images/orig/timezone_11.0.png deleted file mode 100644 index 6168aa2ba9c73ed88897539c8d77ce9ab2353e4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12113 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