diff --git a/README.md b/README.md index d931dd5..4359523 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,9 @@ # qucs +Qucs is an integrated circuit simulator which means you are able to setup a circuit with a graphical user interface (GUI) and simulate the large-signal, small-signal and noise behaviour of the circuit. +After that simulation has finished you can view the simulation results on a presentation page or window Qucs, briefly for Qt Universal Circuit Simulator, is a circuit simulator with graphical user interface. +The software aims to support all kinds of circuit simulation types, e.g. DC, AC, S-parameter, Harmonic Balance analysis, noise analysis, etc. +Qucsator, the simulation backend, is a command line circuit simulator. +It takes a network list in a certain format as input and outputs a Qucs dataset. +It has been programmed for usage in the Qucs project but may also be used by other applications. + diff --git a/qucs-0.0.16-gcc-4.5.patch b/qucs-0.0.16-gcc-4.5.patch new file mode 100644 index 0000000..e29c11d --- /dev/null +++ b/qucs-0.0.16-gcc-4.5.patch @@ -0,0 +1,410 @@ +diff -wbBur qucs-0.0.16/qucs-core/src/components/spfile.cpp qucs-0.0.16.my/qucs-core/src/components/spfile.cpp +--- qucs-0.0.16/qucs-core/src/components/spfile.cpp 2011-03-17 17:02:08.000000000 +0000 ++++ qucs-0.0.16.my/qucs-core/src/components/spfile.cpp 2011-03-29 15:28:06.000000000 +0000 +@@ -409,8 +411,8 @@ + Kx * norm (1.0 - s.get (0, 0) * Sopt)); + c.set (1, 1, norm (s.get (1, 0)) * ((Fmin - 1) + Kx * norm (Sopt))); + c.set (0, 1, s.get (0, 0) / s.get (1, 0) * c.get (1, 1) - +- conj (s.get (1, 0)) * conj (Sopt) * Kx); +- c.set (1, 0, conj (c.get (0, 1))); ++ tr1::conj (s.get (1, 0)) * tr1::conj (Sopt) * Kx); ++ c.set (1, 0, tr1::conj (c.get (0, 1))); + return c; + } + +@@ -422,7 +424,7 @@ + s.getCols () == 2 && c.getCols () == 2); + nr_complex_t n1, n2; + n1 = c.get (0, 0) * norm (s.get (1, 0)) - +- 2 * real (c.get (0, 1) * s.get (1, 0) * conj (s.get (0, 0))) + ++ 2 * real (c.get (0, 1) * s.get (1, 0) * tr1::conj (s.get (0, 0))) + + c.get (1, 1) * norm (s.get (0, 0)); + n2 = 2.0 * (c.get (1, 1) * s.get (0, 0) - + c.get (0, 1) * s.get (1, 0)) / (c.get (1, 1) + n1); +@@ -440,7 +442,7 @@ + + // equivalent noise resistance + Rn = real ((c (0, 0) - 2.0 * +- real (c (0, 1) * conj ((1.0 + s (0, 0)) / s (1, 0))) + ++ real (c (0, 1) * tr1::conj ((1.0 + s (0, 0)) / s (1, 0))) + + c (1, 1) * norm ((1.0 + s (0, 0)) / s (1, 0))) / 4.0); + Rn = Rn * z0; + +diff -wbBur qucs-0.0.16/qucs-core/src/evaluate.cpp qucs-0.0.16.my/qucs-core/src/evaluate.cpp +--- qucs-0.0.16/qucs-core/src/evaluate.cpp 2011-03-11 20:42:20.000000000 +0000 ++++ qucs-0.0.16.my/qucs-core/src/evaluate.cpp 2011-03-29 15:36:29.000000000 +0000 +@@ -1143,7 +1143,7 @@ + constant * evaluate::conj_c (constant * args) { + _ARC0 (c1); + _DEFC (); +- _RETC (conj (*c1)); ++ _RETC (tr1::conj (*c1)); + } + + constant * evaluate::conj_v (constant * args) { +@@ -1443,7 +1443,7 @@ + constant * evaluate::arcsin_c (constant * args) { + _ARC0 (c1); + _DEFC (); +- _RETC (asin (*c1)); ++ _RETC (tr1::asin (*c1)); + } + + constant * evaluate::arcsin_v (constant * args) { +@@ -1462,7 +1462,7 @@ + constant * evaluate::arccos_c (constant * args) { + _ARC0 (c1); + _DEFC (); +- _RETC (acos (*c1)); ++ _RETC (tr1::acos (*c1)); + } + + constant * evaluate::arccos_v (constant * args) { +@@ -1481,7 +1481,7 @@ + constant * evaluate::arctan_c (constant * args) { + _ARC0 (c1); + _DEFC (); +- _RETC (atan (*c1)); ++ _RETC (tr1::atan (*c1)); + } + + constant * evaluate::arctan_v (constant * args) { +@@ -1557,7 +1557,7 @@ + constant * evaluate::arcsec_c (constant * args) { + _ARC0 (c1); + _DEFC (); +- _RETC (acos (1.0 / *c1)); ++ _RETC (tr1::acos (1.0 / *c1)); + } + + constant * evaluate::arcsec_v (constant * args) { +@@ -1595,7 +1595,7 @@ + constant * evaluate::arccosec_c (constant * args) { + _ARC0 (c1); + _DEFC (); +- _RETC (asin (1.0 / *c1)); ++ _RETC (tr1::asin (1.0 / *c1)); + } + + constant * evaluate::arccosec_v (constant * args) { +@@ -1614,7 +1614,7 @@ + constant * evaluate::arsinh_c (constant * args) { + _ARC0 (c1); + _DEFC (); +- _RETC (asinh (*c1)); ++ _RETC (tr1::asinh (*c1)); + } + + constant * evaluate::arsinh_v (constant * args) { +@@ -1634,7 +1634,7 @@ + constant * evaluate::arcosech_c (constant * args) { + _ARC0 (c1); + _DEFC (); +- _RETC (asinh (1.0 / *c1)); ++ _RETC (tr1::asinh (1.0 / *c1)); + } + + constant * evaluate::arcosech_v (constant * args) { +@@ -1647,13 +1647,13 @@ + constant * evaluate::arcosh_d (constant * args) { + _ARD0 (d1); + _DEFC (); +- _RETC (acosh (nr_complex_t (d1))); ++ _RETC (tr1::acosh (nr_complex_t (d1))); + } + + constant * evaluate::arcosh_c (constant * args) { + _ARC0 (c1); + _DEFC (); +- _RETC (acosh (*c1)); ++ _RETC (tr1::acosh (*c1)); + } + + constant * evaluate::arcosh_v (constant * args) { +@@ -1691,7 +1691,7 @@ + constant * evaluate::artanh_c (constant * args) { + _ARC0 (c1); + _DEFC (); +- _RETC (atanh (*c1)); ++ _RETC (tr1::atanh (*c1)); + } + + constant * evaluate::artanh_v (constant * args) { +@@ -2649,7 +2649,7 @@ + _DEFD (); + nr_double_t k; + k = (1 - norm (m->get (0, 0))) / +- (abs (m->get (1, 1) - conj (m->get (0, 0)) * det (*m)) + ++ (abs (m->get (1, 1) - tr1::conj (m->get (0, 0)) * det (*m)) + + abs (m->get (0, 1) * m->get (1, 0))); + _RETD (k); + } +@@ -2669,7 +2669,7 @@ + _DEFD (); + nr_double_t k; + k = (1 - norm (m->get (1, 1))) / +- (abs (m->get (0, 0) - conj (m->get (1, 1)) * det (*m)) + ++ (abs (m->get (0, 0) - tr1::conj (m->get (1, 1)) * det (*m)) + + abs (m->get (0, 1) * m->get (1, 0))); + _RETD (k); + } +@@ -3662,14 +3662,14 @@ + _ARD0 (d1); + _ARC1 (z); + _DEFC (); +- _RETC (10.0 * log10 (norm (d1) / conj (*z) / 0.001)); ++ _RETC (10.0 * log10 (norm (d1) / tr1::conj (*z) / 0.001)); + } + + constant * evaluate::dbm_c_c (constant * args) { + _ARC0 (c1); + _ARC1 (z); + _DEFC (); +- _RETC (10.0 * log10 (norm (*c1) / conj (*z) / 0.001)); ++ _RETC (10.0 * log10 (norm (*c1) / tr1::conj (*z) / 0.001)); + } + + constant * evaluate::dbm_v_c (constant * args) { +diff -wbBur qucs-0.0.16/qucs-core/src/math/complex.cpp qucs-0.0.16.my/qucs-core/src/math/complex.cpp +--- qucs-0.0.16/qucs-core/src/math/complex.cpp 2011-03-11 20:42:21.000000000 +0000 ++++ qucs-0.0.16.my/qucs-core/src/math/complex.cpp 2011-03-29 15:21:58.000000000 +0000 +@@ -366,7 +367,7 @@ + \return arc tangent of z + */ + nr_complex_t atan2 (const nr_complex_t y, const nr_complex_t x) { +- nr_complex_t a = atan (y / x); ++ nr_complex_t a = tr1::atan (y / x); + return real (x) > 0.0 ? a : -a; + } + #endif +diff -wbBur qucs-0.0.16/qucs-core/src/math/complex.h qucs-0.0.16.my/qucs-core/src/math/complex.h +--- qucs-0.0.16/qucs-core/src/math/complex.h 2011-03-17 17:01:42.000000000 +0000 ++++ qucs-0.0.16.my/qucs-core/src/math/complex.h 2011-03-29 15:29:01.000000000 +0000 +@@ -33,7 +33,6 @@ + #elif defined HAVE_TR1_COMPLEX + #include + using namespace std; +-using namespace std::tr1; + typedef std::complex nr_complex_t; + #else + #include +diff -wbBur qucs-0.0.16/qucs-core/src/matrix.cpp qucs-0.0.16.my/qucs-core/src/matrix.cpp +--- qucs-0.0.16/qucs-core/src/matrix.cpp 2011-03-11 20:42:20.000000000 +0000 ++++ qucs-0.0.16.my/qucs-core/src/matrix.cpp 2011-03-29 14:52:17.000000000 +0000 +@@ -504,7 +504,7 @@ + matrix res (a.getRows (), a.getCols ()); + for (int r = 0; r < a.getRows (); r++) + for (int c = 0; c < a.getCols (); c++) +- res.set (r, c, conj (a.get (r, c))); ++ res.set (r, c, tr1::conj (a.get (r, c))); + return res; + } + +@@ -1176,12 +1176,12 @@ + + assert (s.getRows () >= 2 && s.getCols () >= 2); + +- a.set (0, 0, (conj (z1) + z1 * s (0, 0) - +- conj (z1) * s (1, 1) - z1 * d) / n); +- a.set (0, 1, (conj (z1) * conj (z2) + z1 * conj (z2) * s (0, 0) + +- conj (z1) * z2 * s (1, 1) + z1 * z2 * d) / n); ++ a.set (0, 0, (tr1::conj (z1) + z1 * s (0, 0) - ++ tr1::conj (z1) * s (1, 1) - z1 * d) / n); ++ a.set (0, 1, (tr1::conj (z1) * tr1::conj (z2) + z1 * tr1::conj (z2) * s (0, 0) + ++ tr1::conj (z1) * z2 * s (1, 1) + z1 * z2 * d) / n); + a.set (1, 0, (1.0 - s (0, 0) - s (1, 1) + d) / n); +- a.set (1, 1, (conj (z2) - conj (z2) * s (0, 0) + ++ a.set (1, 1, (tr1::conj (z2) - tr1::conj (z2) * s (0, 0) + + z2 * s (1, 1) - z2 * d) / n); + return a; + } +@@ -1219,12 +1219,12 @@ + assert (a.getRows () >= 2 && a.getCols () >= 2); + + s.set (0, 0, (a (0, 0) * z2 + a (0, 1) +- - a (1, 0) * conj (z1) * z2 - a (1, 1) * conj (z1)) / n); ++ - a (1, 0) * tr1::conj (z1) * z2 - a (1, 1) * tr1::conj (z1)) / n); + s.set (0, 1, (a (0, 0) * a (1, 1) - + a (0, 1) * a (1, 0)) * d / n); + s.set (1, 0, d / n); +- s.set (1, 1, (a (1, 1) * z1 - a (0, 0) * conj (z2) + +- a (0, 1) - a (1, 0) * z1 * conj (z2)) / n); ++ s.set (1, 1, (a (1, 1) * z1 - a (0, 0) * tr1::conj (z2) + ++ a (0, 1) - a (1, 0) * z1 * tr1::conj (z2)) / n); + return s; + } + +diff -wbBur qucs-0.0.16/qucs-core/src/spsolver.cpp qucs-0.0.16.my/qucs-core/src/spsolver.cpp +--- qucs-0.0.16/qucs-core/src/spsolver.cpp 2011-03-11 20:42:20.000000000 +0000 ++++ qucs-0.0.16.my/qucs-core/src/spsolver.cpp 2011-03-29 14:54:27.000000000 +0000 +@@ -319,14 +319,14 @@ + + p = + c->getN (i1, j1) + c->getN (k, j1) * k1 + c->getN (l, j1) * k2 + +- conj (k3) * (c->getN (i1, k) + c->getN (k, k) * k1 + ++ tr1::conj (k3) * (c->getN (i1, k) + c->getN (k, k) * k1 + + c->getN (l, k) * k2) + +- conj (k4) * (c->getN (i1, l) + c->getN (k, l) * k1 + ++ tr1::conj (k4) * (c->getN (i1, l) + c->getN (k, l) * k1 + + c->getN (l, l) * k2); + result->setN (i2, j2, p); + + if (i2 >= j2) break; // the other half need not be computed +- result->setN (j2, i2, conj (p)); ++ result->setN (j2, i2, tr1::conj (p)); + i2++; + } + +@@ -378,13 +378,13 @@ + // compute C'ij + p = c->getN (i1, j1) + + c->getN (k, j1) * d->getS (l, l) * c->getS (i1, k) * tiny2 / t + +- c->getN (i1, k) * conj (d->getS (l, l) * c->getS (j1, k) * tiny2 / t) + ++ c->getN (i1, k) * tr1::conj (d->getS (l, l) * c->getS (j1, k) * tiny2 / t) + + (c->getN (k, k) * norm (d->getS (l, l)) + d->getN (l, l)) * +- c->getS (i1, k) * conj (c->getS (j1, k)) * tiny4 / norm (t); ++ c->getS (i1, k) * tr1::conj (c->getS (j1, k)) * tiny4 / norm (t); + + result->setN (i2, j2, p); + if (i2 >= j2) break; // the other half need not be computed +- result->setN (j2, i2, conj (p)); ++ result->setN (j2, i2, tr1::conj (p)); + i2++; + } + +@@ -410,12 +410,12 @@ + + // compute C'ij + p = (c->getN (k, k) * d->getS (l, l) + +- d->getN (l, l) * conj (c->getS (k, k))) * +- c->getS (i1, k) * conj (d->getS (j1, l)) * tiny3 / norm (t) + ++ d->getN (l, l) * tr1::conj (c->getS (k, k))) * ++ c->getS (i1, k) * tr1::conj (d->getS (j1, l)) * tiny3 / norm (t) + + d->getN (l, j1) * c->getS (i1, k) * tiny1 / t + +- c->getN (i1, k) * conj (d->getS (j1, l) * tiny1 / t); ++ c->getN (i1, k) * tr1::conj (d->getS (j1, l) * tiny1 / t); + result->setN (i2, j2, p); +- result->setN (j2, i2, conj (p)); ++ result->setN (j2, i2, tr1::conj (p)); + i2++; + } + +@@ -428,12 +428,12 @@ + // compute C'ij + p = d->getN (i1, j1) + + (d->getN (l, l) * norm (c->getS (k, k)) + c->getN (k, k)) * +- d->getS (i1, l) * conj (d->getS (j1, l)) * tiny4 / norm (t) + +- d->getN (i1, l) * conj (c->getS (k, k) * d->getS (j1, l) * tiny2 / t) + ++ d->getS (i1, l) * tr1::conj (d->getS (j1, l)) * tiny4 / norm (t) + ++ d->getN (i1, l) * tr1::conj (c->getS (k, k) * d->getS (j1, l) * tiny2 / t) + + d->getN (l, j1) * c->getS (k, k) * d->getS (i1, l) * tiny2 / t; + result->setN (i2, j2, p); + if (i2 >= j2) break; // the other half need not be computed +- result->setN (j2, i2, conj (p)); ++ result->setN (j2, i2, tr1::conj (p)); + i2++; + } + +@@ -1042,7 +1042,7 @@ + // linear noise figure + F = real (1.0 + c22 / norm (s21)); + n1 = +- c11 * norm (s21) - 2.0 * real (c12 * s21 * conj (s11)) + ++ c11 * norm (s21) - 2.0 * real (c12 * s21 * tr1::conj (s11)) + + c22 * norm (s11); + n2 = 2.0 * (c22 * s11 - c12 * s21) / (c22 + n1); + +@@ -1058,7 +1058,7 @@ + norm (s21) / (1.0 + norm (Sopt))); + + // equivalent noise resistance +- Rn = real ((c11 - 2.0 * real (c12 * conj ((1.0 + s11) / s21)) + ++ Rn = real ((c11 - 2.0 * real (c12 * tr1::conj ((1.0 + s11) / s21)) + + c22 * norm ((1.0 + s11) / s21)) / 4.0); + Rn = Rn * z0; + +diff -wbBur qucs-0.0.16/qucs-core/src/tvector.cpp qucs-0.0.16.my/qucs-core/src/tvector.cpp +--- qucs-0.0.16/qucs-core/src/tvector.cpp 2011-03-11 20:42:20.000000000 +0000 ++++ qucs-0.0.16.my/qucs-core/src/tvector.cpp 2011-03-29 15:10:09.000000000 +0000 +@@ -390,7 +390,7 @@ + tvector conj (tvector a) { + int n = a.getSize (); + tvector res (n); +- for (int i = 0; i < n; i++) res.set (i, conj (a.get (i))); ++ for (int i = 0; i < n; i++) res.set (i, tr1::conj (a.get (i))); + return res; + } + +diff -wbBur qucs-0.0.16/qucs-core/src/vector.cpp qucs-0.0.16.my/qucs-core/src/vector.cpp +--- qucs-0.0.16/qucs-core/src/vector.cpp 2011-03-17 17:01:25.000000000 +0000 ++++ qucs-0.0.16.my/qucs-core/src/vector.cpp 2011-03-29 15:33:57.000000000 +0000 +@@ -354,7 +354,7 @@ + + vector conj (vector v) { + vector result (v); +- for (int i = 0; i < v.getSize (); i++) result.set (conj (v.get (i)), i); ++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::conj (v.get (i)), i); + return result; + } + +@@ -450,13 +450,13 @@ + + vector asin (vector v) { + vector result (v); +- for (int i = 0; i < v.getSize (); i++) result.set (asin (v.get (i)), i); ++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::asin (v.get (i)), i); + return result; + } + + vector acos (vector v) { + vector result (v); +- for (int i = 0; i < v.getSize (); i++) result.set (acos (v.get (i)), i); ++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::acos (v.get (i)), i); + return result; + } + +@@ -474,7 +474,7 @@ + + vector atan (vector v) { + vector result (v); +- for (int i = 0; i < v.getSize (); i++) result.set (atan (v.get (i)), i); ++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::atan (v.get (i)), i); + return result; + } + +@@ -498,7 +498,7 @@ + + vector asinh (vector v) { + vector result (v); +- for (int i = 0; i < v.getSize (); i++) result.set (asinh (v.get (i)), i); ++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::asinh (v.get (i)), i); + return result; + } + +@@ -510,7 +510,7 @@ + + vector acosh (vector v) { + vector result (v); +- for (int i = 0; i < v.getSize (); i++) result.set (acosh (v.get (i)), i); ++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::acosh (v.get (i)), i); + return result; + } + +@@ -528,7 +528,7 @@ + + vector atanh (vector v) { + vector result (v); +- for (int i = 0; i < v.getSize (); i++) result.set (atanh (v.get (i)), i); ++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::atanh (v.get (i)), i); + return result; + } + +@@ -1200,7 +1200,7 @@ + vector dbm (vector v, const nr_complex_t z) { + vector result (v); + for (int i = 0; i < v.getSize (); i++) +- result.set (10.0 * log10 (norm (v.get (i)) / conj (z) / 0.001), i); ++ result.set (10.0 * log10 (norm (v.get (i)) / tr1::conj (z) / 0.001), i); + return result; + } + diff --git a/qucs.spec b/qucs.spec new file mode 100644 index 0000000..8d2f3a6 --- /dev/null +++ b/qucs.spec @@ -0,0 +1,155 @@ +Name: qucs +Version: 0.0.18.131128 +Release: 1mamba +Summary: Integrated circuit simulator +Group: Graphical Desktop/Applications/Scientific +Vendor: openmamba +Distribution: openmamba +Packager: Tiziana Ferro +URL: http://qucs.sourceforge.net/ +Source0: http://downloads.sourceforge.net/sourceforge/qucs/%{name}-%{version}.tar.gz +Patch0: qucs-0.0.16-gcc-4.5.patch +#Source1: examples.tar.gz +License: GPL +BuildRoot: %{_tmppath}/%{name}-%{version}-root +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libgcc +BuildRequires: libICE-devel +BuildRequires: libqt-devel +BuildRequires: libSM-devel +BuildRequires: libstdc++6-devel +BuildRequires: libX11-devel +## AUTOBUILDREQ-END +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description +Qucs is an integrated circuit simulator which means you are able to setup a circuit with a graphical user interface (GUI) and simulate the large-signal, small-signal and noise behaviour of the circuit. +After that simulation has finished you can view the simulation results on a presentation page or window Qucs, briefly for Qt Universal Circuit Simulator, is a circuit simulator with graphical user interface. +The software aims to support all kinds of circuit simulation types, e.g. DC, AC, S-parameter, Harmonic Balance analysis, noise analysis, etc. +Qucsator, the simulation backend, is a command line circuit simulator. +It takes a network list in a certain format as input and outputs a Qucs dataset. +It has been programmed for usage in the Qucs project but may also be used by other applications. + +%package -n lib%{name} +Group: System/Libraries +Summary: Shared libraries for %{name} + +%description -n lib%{name} +This package contains shared libraries for %{name}. + +%package -n lib%{name}-devel +Group: Development/Libraries +Summary: Development files for %{name} +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description -n lib%{name}-devel +This package contains libraries and header files for developing applications that use %{name}. + +%prep +%setup -q +#%patch0 -p1 + +%build +export QTDIR=/usr/lib/qt3/ +%configure +%make + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +%makeinstall +#mkdir -p %{buildroot}%{_datadir}/qucs +#cp -r examples %{buildroot}%{_datadir}/qucs/ + +# Create the system menu entry +mkdir -p %{buildroot}%{_datadir}/applications +cat > %{buildroot}%{_datadir}/applications/%{name}.desktop << EOF +[Desktop Entry] +Name=Qucs +GenericName=%{summary} +GenericName[it]=Simulatore di circuiti +Comment=%{summary} +Exec=%{name} +Icon=kcmpci.png +Type=Application +Categories=Graphics;3DGraphics;KDE +Terminal=false +X-KDE-StartupNotify=false +EOF + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%files +%defattr(-,root,root,-) +%{_bindir}/alter +%{_bindir}/asco +%{_bindir}/asco-test +%{_bindir}/log +%{_bindir}/monte +%{_bindir}/postp +%{_bindir}/ps2sp +%{_bindir}/qucs +%{_bindir}/qucsator +%{_bindir}/qucsattenuator +%{_bindir}/qucsconv +%{_bindir}/qucsdigi +%{_bindir}/qucsdigilib +%{_bindir}/qucsedit +%{_bindir}/qucsfilter +%{_bindir}/qucshelp +%{_bindir}/qucslib +%{_bindir}/qucstrans +%{_bindir}/qucsveri +%{_bindir}/rosen +%dir %{_datadir}/qucs/ +%{_datadir}/qucs/* +%{_datadir}/applications/qucs.desktop +%{_mandir}/man1/*.1* + +%files -n lib%{name} +%defattr(-,root,root,-) +%{_libdir}/libqucs.so.* + +%files -n lib%{name}-devel +%defattr(-,root,root,-) +%dir %{_includedir}/qucs-core +%{_includedir}/qucs-core/*.h +%{_libdir}/libqucs.la +%{_libdir}/libqucs.so + +%changelog +* Sun Dec 01 2013 Automatic Build System 0.0.18.131128-1mamba +- automatic update by autodist + +* Sat Jul 20 2013 Automatic Build System 0.0.18.130705-1mamba +- automatic update by autodist + +* Tue Jun 11 2013 Automatic Build System 0.0.17.130610-1mamba +- automatic version update by autodist + +* Mon May 27 2013 Automatic Build System 0.0.17.130527-1mamba +- automatic version update by autodist + +* Mon Oct 15 2012 Automatic Build System 0.0.16-1mamba +- automatic version update by autodist + +* Thu Jul 09 2009 Automatic Build System 0.0.15-1mamba +- automatic update by autodist + +* Thu Jun 19 2008 Tiziana Ferro 0.0.14-1mamba +- update to 0.0.14 +- update system menu entry +- update buildrequirements + +* Thu Mar 22 2007 Tiziano Pratellesi 0.0.11-1qilnx +- update to 0.0.11 + +* Wed Jun 14 2006 Stefano Cotta Ramusino 0.0.9-1qilnx +- update to version 0.0.9 by autospec + +* Thu May 26 2005 Alessandro Ramazzina 0.0.6-1qilnx +- new version + +* Wed May 18 2005 Matteo Bernasconi 0.0.5-1qilnx +- first build