@ -1,41 +1,81 @@
{ mkDerivation , stdenv , fetchpatch , fetchFromGitHub , qmake , pkgconfig
, qtbase , qtsvg , qtserialport , boost , libgit2
, qtbase , qtsvg , qttools , qt serialport , boost , libgit2
} :
let
# build number corresponding to a release, has no further relation
# see https://github.com/fritzing/fritzing-app/releases/tag/CD-498
fritzingBuild = " 4 9 8 " ;
# SHA256 of the fritzing-parts HEAD on the master branch,
# which contains the latest stable parts definitions
partsSha = " e 7 9 a 6 9 7 6 5 0 2 6 f 3 f d a 8 a a b 1 b 3 e 7 a 4 9 5 2 c 2 8 0 4 7 a 6 2 " ;
in
mkDerivation rec {
pname = " f r i t z i n g " ;
version = " 0 . 9 . 3 b " ;
version = " 0 . 9 . 4 - ${ fritzingBuild } " ;
src = fetchFromGitHub {
owner = " f r i t z i n g " ;
repo = " f r i t z i n g - a p p " ;
rev = version ;
sha256 = " 0 h p y c 5 5 0 x f h r 6 g m n c 8 5 n q 6 0 w 0 0 r m 0 l j m 0 y 7 4 4 d p 0 z 8 8 i k l 0 4 f 4 s 3 " ;
rev = " C D - ${ fritzingBuild } " ;
sha256 = " 0 a l j j 2 w b m m 1 v d 6 4 n h j 6 l h 9 q y 8 5 6 p d 5 a v l g y d s z n y a 2 v y l y z 2 0 p 3 4 " ;
} ;
parts = fetchFromGitHub {
owner = " f r i t z i n g " ;
repo = " f r i t z i n g - p a r t s " ;
rev = version ;
sha256 = " 1 d 2 v 8 k 7 p 1 7 6 j 0 l c z x 4 v x 9 n 9 g b g 3 v w 0 9 n 2 c 4 b 6 w 0 w j 5 w q m i f y w h c 1 " ;
name = " f r i t z i n g - p a r t s " ;
rev = partsSha ;
sha256 = " 0 s p k a 3 3 a 5 q q 3 4 a q 7 9 j 0 1 a r w 1 a l y 4 v h 0 h z v 7 m a h r y h d l c d k 2 2 q q v c " ;
} ;
buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ] ;
nativeBuildInputs = [ qmake pkgconfig qttools ] ;
patches = [ ( fetchpatch {
name = " 0 0 0 1 - S q u a s h e d - c o m m i t - o f - t h e - f o l l o w i n g . p a t c h " ;
url = " h t t p s : / / a u r . a r c h l i n u x . o r g / c g i t / a u r . g i t / p l a i n / 0 0 0 1 - S q u a s h e d - c o m m i t - o f - t h e - f o l l o w i n g . p a t c h ? h = f r i t z i n g " ;
sha256 = " 1 c v 6 m y i d x h y 2 8 i 8 m 8 v 1 3 g h z k v x 5 9 7 8 p 9 d c d 8 v 7 8 8 5 y 0 l 1 h 3 1 0 8 m f " ;
name = " f i x - l i b g i t 2 - v e r s i o n . p a t c h " ;
url = " h t t p s : / / g i t h u b . c o m / f r i t z i n g / f r i t z i n g - a p p / c o m m i t / 4 7 2 9 5 1 2 4 3 d 7 0 e e b 4 0 a 5 3 b 1 f 7 e 1 6 e 6 e a b 0 5 8 8 d 0 7 9 . p a t c h " ;
sha256 = " 0 v 1 z i 6 0 9 c j n q a c 8 0 x g n k 2 3 n 5 4 z 0 8 g 1 l i a 3 7 h b z f l 8 j c q 9 s n 9 a d a k " ;
} ) ] ;
buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ] ;
postPatch = ''
substituteInPlace phoenix . pro \
- - replace ' LIBGIT_STATIC = true' ' LIBGIT_STATIC = false'
nativeBuildInputs = [ qmake pkgconfig ] ;
substituteInPlace tools/linux_release_script/release.sh \
- - replace ' git status' ' echo > /dev/null ' \
- - replace ' git clean' ' echo > /dev/null ' \
- - replace ' git clone' ' echo > /dev/null ' \
- - replace ' release_folder = " ' ' r e l e a s e _ f o l d e r = " $ out " # ' \
- - replace ' ./Fritzing - db' ' # run after fixup'
qmakeFlags = [ " p h o e n i x . p r o " ] ;
substituteInPlace src/fapplication.cpp \
- - replace ' PartsChecker::getSha ( dir . absolutePath ( ) ) ; ' ' " ${ partsSha } " ; '
'' ;
preConfigure = ''
ln - s " $ p a r t s " parts
buildPhas e = ''
bash tools/linux_release_script/release.sh $ { version }
'' ;
installPhase = ''
rm " $ o u t / F r i t z i n g " # remove script file
mkdir " $ o u t / b i n "
mv " $ o u t / l i b / F r i t z i n g " " $ o u t / b i n / F r i t z i n g "
mkdir - - parents " $ o u t / s h a r e / a p p l i c a t i o n s " " $ o u t / s h a r e / m e t a i n f o "
mv - - target-directory = " $ o u t / s h a r e / a p p l i c a t i o n s " " $ o u t / o r g . f r i t z i n g . F r i t z i n g . d e s k t o p "
mv - - target-directory = " $ o u t / s h a r e / m e t a i n f o " " $ o u t / o r g . f r i t z i n g . F r i t z i n g . a p p d a t a . x m l "
cp - - recursive - - no-target-directory " $ p a r t s " " $ o u t / f r i t z i n g - p a r t s "
'' ;
postFixup = ''
# generate the parts.db file
QT_QPA_PLATFORM = offscreen " $ o u t / b i n / F r i t z i n g " - db " $ o u t / f r i t z i n g - p a r t s / p a r t s . d b " - pp " $ o u t / f r i t z i n g - p a r t s " - folder " $ o u t "
'' ;
qmakeFlags = [ " p h o e n i x . p r o " ] ;
meta = {
description = " A n o p e n s o u r c e p r o t o t y p i n g t o o l f o r A r d u i n o - b a s e d p r o j e c t s " ;
homepage = " h t t p s : / / f r i t z i n g . o r g / " ;